ใช้ 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

Suggestion blogs

OR gate

OR gate เป็นวงจร digital ชนิดหนึ่ง โดย input ที่ป้อนให้กับวงจรในแต่ละขา จะเป็นได้สองสถานะคือ High, Low หรือ 0, 1

[ภาษาซี] การดําเนินการระดับบิต

บิต (Bit) ย่อมาจาก Binary digit คือหน่วยของข้อมูลที่เล็กที่สุดในระบบคอมพิวเตอร์ ซึ่งจะมีค่า 0 และ 1 อย่างใดอย่างหนึ่งเท่านั้น ข้อมูล 1 Byte จะประกอบไปด้วย 8 Bit ดังนั้นเมื่อแสดงข้อมูล 1 Byte ในรูปของ Bit จะได้ตัวเลข 0 หรือ 1 เรียงกันจํานวน 8 ตัว เช่น 10010111

Unicode

Unicode คือ รหัสข้อมูลทางคอมพิวเตอร์ที่ใช้แทนอักขระ สามารถใช้แทนตัวอักษร ตัวเลข และสัญลักษณ์ต่างๆ ได้มากกว่า ASCII ซึ่งแทนอักขระได้แค่ 256 ตัวเท่านั้น(1Byte) Unicode สามารถใช้แทนตัวอักษร จากภาษาทั้งหมดทั่วโลก 24 ภาษา


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

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ