docker swarm คือ เครื่องมือที่ช่วยเป็นตัวจัดการเครื่องที่รัน Docker หลายๆเครื่องให้อยู่ในสภาพแวดล้อมเดียวกัน ช่วยในการทำให้การใช้ Service Orchestration ให้ใช้งานได้ง่ายขึ้น
โดยในที่นี้ สร้าง server โดยใช้เครื่องมือ
vagrant
โดย provider เป็นvirtualbox
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ sudo apt-get install -y docker-engine
$ sudo systemctl start docker.service
$ sudo docker swarm init --advertise-addr <ip masternode>
...
$ sudo docker swarm init --advertise-addr 192.168.1.50
$ docker swarm join --token <token> <ip master>:2377
...
$ docker swarm join --token SWMTKN-1-50kpamk0y2g48d1y76h2gyhuwd89rsyq4kwx0hatf4rylrhp56-ceoe5yam6ce3jg82p81n582yg 192.168.1.50:2377
ผลที่ได้
เช็ค node ด้วยคำสั่ง
sudo docker node ls
ใน master node
ที่นี้ Worker node ทั้งสอง ถูกนำ เข้า cluster เรียบร้อย
ลองสร้าง service ชื่อ nginx ขึ้นมา 1 container
sudo docker service create --replicas 1 --name nginx -p 80:80 nginx
เช็ค service ที่ start ว่า ถูกสร้าง ไว้ที่ไหน
$ sudo docker service ps nginx
$ sudo docker service scale nginx=5
ลอง เช็ค service อีกครั้ง
sudo docker service ps nginx