ใช้ Docker Compose กับ Docker Swarm

15 Dec 2017

Share to:

สวัสดีครับจากบทความตอนที่แล้ว “เริ่มต้นใช้ Docker Swarm” เราได้เรียนรู้พื้นฐานการใช้งาน Docker Swarm กันไปแล้ว ในบทความนี้เราจะมาต่อยอดโดยนํา Docker Compose มาใช้ใน Docker Swarm เพราะในงานจริงเราจะได้ทํางานได้ง่ายและสะดวกขึ้น ก่อนที่จะอ่านบทความนี้ควรจะต้องมีความรู้ในเรื่องของ Docker Swarm และ Docker Compose ก่อน กลับไปอ่านได้ที่นี่

อย่าลืม Update Docker เป็น version ล่าสุดก่อนนะครับ

อันดับแรกต้อง Join Swarm กันให้เรียบร้อยก่อนครับ ซึ่งวิธีการ Join Swarm อ่านได้จากที่นี่ เริ่มต้นใช้ Docker Swarm โดยเราจะ Join Swarm ไว้แต่ยังไม่ต้องรัน Service เราจะมารัน Service ด้วย Docker Compose ตามวิธีดังต่อไปนี้ ถ้าใช้ DigitalOcean เราจะต้องไป Config Firewall ให้สามารถใช้งาน port ที่ Docker Swarm ต้องการได้ อ่านเพิ่มเติมที่นี่ครับ Configure the Linux Firewall for Docker Swarm on Ubuntu ผมใช้ DigitalOcean สร้างเครื่องขึ้นมาทั้งหมด 5 เครื่อง แล้วนํามา Join Swarm

Image

เมื่อเรา Join Swarm เรียบร้อยแล้ว ในตัวอย่างของผม Join กันทั้งหมด 5 เครื่องตามนี้

Image

สร้างไฟล์ docker-compose.yml

version: '3'
services:
  test:
    image: thiti/swarm-example
    ports:
      - 3000:3000
    deploy:
      replicas: 10

การเขียน File docker-compose.yml จะเขียนเหมือน Docker Compose ทั่วๆไป แต่สิ่งที่เพิ่มเติมเข้ามาคือ Config ในส่วนของการ Scale ระบบคือ deploy และ replicas เราก็ใส่ replicas ได้ตามใจชอบ ในตัวอย่างนี้ผมใช้ Docker Image เดิมในบทความที่แล้ว (เป็น webserver แสดงชื่อของ Host) คําสั่งที่ใช้ในการรัน service คือ

docker stack deploy -c <ชื่อ file docker compose> <ชื่อ Service>

ลองรัน Service จะได้แบบนี้ครับ

Image

Check ดูว่า Stack เราถูกสร้างขึ้นมาหรือยัง ด้วยคําสั่ง

docker stack ls

Image

Check ดูว่า service เราถูกสร้างขึ้นมาหรือยัง ด้วยคําสั่ง

docker service ls

Image

เราจะได้ Service ขึ้นมา 1 ตัว ลองเปิดหน้าเว็บดูครับ

Image

จะแสดงชื่อของ node ที่รับงานไป ลองปิดดูหลายๆครั้ง จะเห็นว่าชื่อจะเปลี่ยนไปตามระบบจัดการว่าให้เครื่องไหนเป็นคนรับงานไป

Image

วิธีการลบ Stack ให้ใช้คําสั่ง

docker stack rm <ชื่อ stack>

Image

ส่วนคําสั่งในการจัดการ Service หรือ node เป็นคําสั่งของ Swarm ทั่วไปครับ สามารถอ่านเพิ่มเติมได้จาก เริ่มต้นใช้ Docker Swarm


Copyright © 2019 - 2024 thiti.dev |  v1.19.0 |  Privacy policy |  status | 

            วงแหวนเว็บ