Docker กับการสร้าง environment แบบ All-in-One (Docker Compose)


         Docker Compose เป็นสิ่งที่จะมายกเครื่อง Docker มากยิ่งขึ้น จากเดิม (Docker คืออะไร ?) เราได้ทดลองใช้ Docker ผ่าน CLI กันไป แต่การจะเอา container เดิมมาใช้ ก็จะมีความลำบากเล็กๆ และยิ่งถ้ามี container หลายตัวก็ยิ่งวุ่นวายไปใหญ่

assignment docker-compose.yml

         ไฟล์นี้คือหัวใจสำคัญของ docker compose เราจะต้องเขียน config ต่างๆ เข้าไปในรูปแบบ YAML ซึ่งจริงๆมันก็คือการย้ายการเขียน CLI ทีละคำสั่ง ให้อยู่ในรูปแบบไฟล์ที่สามารถอ่านได้ง่ายขึ้น ลดการเขียนคำสั่งไปได้เยอะ (ลด หมายความว่าก็ยังต้องเขียนบ้างนะ sentiment_very_satisfied )

docker-compose.yml


คำสั่ง Docker Compose

  • สร้างและ start container ตามไฟล์ docker-compose.yml
    docker-compose up

  • ดู container ที่เกี่ยวข้อง
    docker-compose ps
          Name                     Command                State     Ports
    ---------------------------------------------------------------------
    my-ci_jenkins_1     /bin/tini -- /usr/local/bi ...   Exit 255
    my-ci_sonarqube_1   ./bin/run.sh                     Exit 143
    
             * docker compose จะใช้ชื่อ folder ของเราเป็นตัวกำหนดชื่อ container เพราะฉะนั้นหากเป็นเครื่องเดียวกันที่ copy ทั้ง folder ไป มันก็ยังเห็น container เป็นของเดิมอยู่

  • ดูรายการ network (ถ้ายังไม่ถูก down จะไม่สามารถสร้างวง network ซ้ำกันได้)
    docker network ls
    NETWORK ID          NAME                           DRIVER              SCOPE
    1d7fb97453ae        bridge                         bridge              local
    fbf218bef328        host                           host                local
    9c64cfd5bea9        my-ci-dockerfile_testing_net   bridge              local
    6e295959a223        my-ci_default                  bridge              local
    3834c5e3cc7b        my-ci_testing_net              bridge              local
    695f31fa231a        none                           null                local
    

  • ถ้ามี container อยู่แล้ว จะใช้คำสั่ง up หรือ start ก็ได้ (ไม่ต่างกัน)
    docker-compose start

  • stop container ที่เกี่ยวข้อง
    docker-compose stop

  • ลบ container ทั้งหมด รวมไปถึง networks, images และ volumes
    docker-compose down
ทดสอบเข้าหน้าเว็บ
         จากไฟล์ตัวอย่าง จะเห็นว่ามีการสร้าง network config เพื่อให้ container แต่ละตัวมีการกำหนด IP ชัดเจน ทำให้การอ้างอิงกันระหว่าง container ทำได้ง่ายขึ้น อีกทั้งยังมีการ share folder จากเครื่อง host เข้าไปใช้ภายใน docker ด้วย (volumes) ซึ่งส่วนนี้ไม่จำเป็นต้องใช้ docker compose ก็ทำได้ เพียงแต่ต้องเขียน command-line เองครับ

         นอกเหนือจากตัวอย่างนี้ สามารถหาข้อมูลได้ที่ Official Website >> Overview of Docker Compose ครับ และเชิญติดตามตอนต่อไปของเรื่อง Docker กันครับ

Facebook Comment

Recent Posts

Popular post of 7 days

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

Portal คืออะไรกันนะ???

Deeplink, Universal Links คืออะไร ทำงานร่วมกับ Mobile App ได้ยังไง

Popular

Portal คืออะไรกันนะ???

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

Port Forwarding สำหรับคนใช้ AIS Fibre

เรื่องของ ++i กับ i++

Android Auto & Apple Carplay คืออะไร ใช้งานยังไง

Deeplink, Universal Links คืออะไร ทำงานร่วมกับ Mobile App ได้ยังไง

วิธีการสมัคร Apple Developer Program และ Enterprise Program ฉบับลงมือเอง

พิมพ์ซองจากรายชื่อ excel ด้วยวิธี Mail Merge

ทดสอบ Mobile App แบบ Automated ด้วย Appium ทำยังไงกันนะ