ครั้งที่แล้วได้ทดลองใช้งาน Docker Swarm ไปบ้างแล้ว ครั้งนี้มาลองดูวิธีการใช้แบบอื่นๆ บ้าง หากคุณยังไม่ได้ติดตั้ง Swarm และผูก Docker Cluster ไว้ให้ตามอ่านเนื้อหาในครั้งก่อน เมื่อผูก cluster เรียบร้อยแล้ว มีทางเลือกในการใช้งานกับ cluster 2 แบบ คือ

  • ใช้งานผ่าน swarm โดยใช้ docker แบบปกติ
  • ใช้งานผ่าน swarm โดยใช้ docker-compose

การใช้งาน 2 วิธีนี้สามารถใช้งานร่วมกันได้ หากคุณใช้ docker แบบปกติสั่ง run container คุณสามารถกำหนด constraint หรือ affinity ร่วมด้วยได้ เช่น ต้องการใช้ compose ช่วยในการ deploy web หรือ scale web ก็สามารถทำได้

ยกตัวอย่างมีฐานข้อมูลอยู่ใน swarm-node-02

docker run -d -p 3306:3306 --name wordpress_db_1 -e MYSQL_ROOT_PASSWORD=xehVg1IpVhEmlwRMG -e constraint:node==swarm-node-02 orchardup/mysql

การ deploy web จะต้องอยู่ใน node เดียวกัน สร้างไฟล์ docker-compose.yml ได้ดังนี้

จากโค้ดกำหนด contraint ไปที่ swarm-node-02 คือบังคับตรงๆ เพราะรู้อยู่แล้วว่าฐานข้อมูลอยู่ swarm-node-02 แต่หากไม่รู้ว่าอยู่ node ใด ก็สามารถใช้ affinity ช่วยได้ คือ deploy ไปยังเครื่องที่มี container ชื่อ wordpress_db_1 อยู่ สร้างไฟล์ docker-compose.yml ได้ดังนี้

จะใช้อย่างใดอย่างหนึ่งก็ได้

Comments are closed.