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

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

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

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

Popular

[Java] Java 8 DateTime ใหม่ ไฉไลกว่าเดิม

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

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

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

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

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

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

[Java] Java Static Variable และ Static Method

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

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