{"id":2406,"date":"2016-08-30T19:18:20","date_gmt":"2016-08-30T12:18:20","guid":{"rendered":"https:\/\/engineerball.com\/?p=2406"},"modified":"2017-06-11T21:32:27","modified_gmt":"2017-06-11T14:32:27","slug":"run-docker-swarm-in-5-second","status":"publish","type":"post","link":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html","title":{"rendered":"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35"},"content":{"rendered":"<p>\u0e43\u0e19 Docker 1.12 \u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e43\u0e2b\u0e21\u0e48\u0e17\u0e35\u0e48\u0e19\u0e48\u0e32\u0e2a\u0e19\u0e43\u0e08\u0e02\u0e2d\u0e07 Docker \u0e04\u0e37\u0e2d Swarm Mode \u0e0b\u0e36\u0e48\u0e07\u0e40\u0e08\u0e49\u0e32 Swarm \u0e19\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48\u0e23\u0e31\u0e19 Docker \u0e2b\u0e25\u0e32\u0e22 \u0e46 \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e2b\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e25\u0e49\u0e2d\u0e21\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19 \u0e41\u0e25\u0e30 Swarm Mode \u0e17\u0e35\u0e48\u0e21\u0e32\u0e43\u0e2b\u0e21\u0e48\u0e19\u0e35\u0e49\u0e01\u0e47\u0e08\u0e30\u0e21\u0e32\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e43\u0e19\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e02\u0e2d\u0e07 Service Orchestration \u0e43\u0e2b\u0e49\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22\u0e02\u0e36\u0e49\u0e19 \u0e25\u0e14\u0e04\u0e27\u0e32\u0e21\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e25\u0e07 \u0e42\u0e14\u0e22\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e1b\u0e2d\u0e32\u0e28\u0e31\u0e22\u0e1e\u0e27\u0e01 Kubernetes \u0e17\u0e35\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e43\u0e19\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e1e\u0e2d\u0e2a\u0e21\u0e04\u0e27\u0e23<\/p>\n<figure style=\"width: 638px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium\" src=\"https:\/\/image.slidesharecdn.com\/dockerswarmreloaded-160715131409\/95\/docker-swarm-reloaded-8-638.jpg?cb=1468588586\" alt=\"SWARM Mode architecture\" width=\"638\" height=\"359\" \/><figcaption class=\"wp-caption-text\">SWARM Mode architecture<\/figcaption><\/figure>\n<p>\u0e43\u0e19\u0e1a\u0e25\u0e47\u0e2d\u0e01\u0e19\u0e35\u0e49\u0e40\u0e23\u0e32\u0e08\u0e30\u0e21\u0e32\u0e25\u0e2d\u0e07\u0e40\u0e25\u0e48\u0e19 Docker Swarm \u0e14\u0e49\u0e27\u0e22 Swarm Mode \u0e01\u0e31\u0e19\u0e14\u0e39\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e0b\u0e36\u0e48\u0e07\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e40\u0e27\u0e25\u0e32\u0e40\u0e23\u0e32\u0e08\u0e30\u0e2a\u0e23\u0e49\u0e32\u0e07 Docker Swarm \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e19\u0e31\u0e49\u0e19\u0e08\u0e30\u0e21\u0e35\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19<\/p>\n<ol>\n<li>\u0e2a\u0e23\u0e49\u0e32\u0e07 Master node<\/li>\n<li>\u0e2a\u0e23\u0e49\u0e32\u0e07 Token \u0e17\u0e35\u0e48 Master node<\/li>\n<li>\u0e40\u0e1b\u0e34\u0e14 Agent \u0e17\u0e35\u0e48 Worker node<\/li>\n<li>\u0e19\u0e33 Worker node \u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48 Cluster<\/li>\n<\/ol>\n<p>\u0e41\u0e15\u0e48\u0e43\u0e19 Docker 1.12 \u0e19\u0e31\u0e49\u0e19\u0e21\u0e31\u0e19\u0e08\u0e30\u0e07\u0e48\u0e32\u0e22\u0e01\u0e27\u0e48\u0e32\u0e21\u0e32\u0e01 \u0e46 \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e01\u0e47\u0e44\u0e21\u0e48\u0e40\u0e22\u0e2d\u0e30\u0e2d\u0e35\u0e01\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e08\u0e30\u0e21\u0e35\u0e41\u0e04\u0e48<\/p>\n<ol>\n<li>\u0e17\u0e35\u0e48 Master node \u0e2a\u0e23\u0e49\u0e32\u0e07 Initial Swarm cluster<\/li>\n<li>\u0e19\u0e33 Worker node \u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48 Cluster \u0e14\u0e49\u0e27\u0e22\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e41\u0e04\u0e48\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e40\u0e14\u0e35\u0e22\u0e27<\/li>\n<\/ol>\n<p>\u0e21\u0e32\u0e25\u0e2d\u0e07\u0e40\u0e25\u0e48\u0e19\u0e01\u0e31\u0e19\u0e14\u0e35\u0e01\u0e27\u0e48\u0e32<\/p>\n<p><strong>\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e25\u0e49\u0e2d\u0e21<\/strong><\/p>\n<ol>\n<li>Master node : 10.128.0.2<\/li>\n<li>Worker-01 node: 10.128.0.3<\/li>\n<li>Worker-02 node: 10.128.0.4<\/li>\n<\/ol>\n<p>\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e17\u0e33\u0e07\u0e32\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e19 <strong>Ubuntu 16.04 LTS<\/strong><\/p>\n<p>\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23 (Prerequire)<\/p>\n<ol>\n<li>\u0e17\u0e31\u0e49\u0e07 3 \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 Docker engine \u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19 1.12<\/li>\n<\/ol>\n<pre>$ <strong>sudo apt update<\/strong>\n$ <strong>sudo apt <span class=\"hljs-keyword\">install<\/span> apt-transport-https ca-certificates<\/strong>\n$ <strong>sudo apt-key adv --keyserver hkp:<span class=\"hljs-regexp\">\/\/p<\/span>8<span class=\"hljs-number\">0<\/span>.pool.sks-keyservers.net:<span class=\"hljs-number\">80<\/span> --<span class=\"hljs-keyword\">recv<\/span>-<span class=\"hljs-keyword\">keys<\/span> <span class=\"hljs-number\">58118<\/span>E89F3A912897C070ADBF76221572C52609D\n<\/strong>$ <strong>echo \"<span class=\"hljs-attribute\">deb<\/span> https:\/\/apt.dockerproject.org\/repo ubuntu-xenial main\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list\n<\/strong>$ <strong>sudo apt update\n<\/strong>$ <strong>sudo apt install -y docker-engine\n<\/strong>$ <strong>sudo systemctl start docker.service\n<\/strong><\/pre>\n<p>\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19\u0e02\u0e2d\u0e07 Docker \u0e14\u0e39\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e14\u0e49 version 1.12<\/p>\n<pre>$ <strong>sudo docker version<\/strong><\/pre>\n<p>\u0e1c\u0e25\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49<\/p>\n<pre>Client:\n Version:      1.12.1\n API version:  1.24\n Go version:   go1.6.3\n Git commit:   23cf638\n Built:        Thu Aug 18 05:33:38 2016\n OS\/Arch:      linux\/amd64\n\nServer:\n Version:      1.12.1\n API version:  1.24\n Go version:   go1.6.3\n Git commit:   23cf638\n Built:        Thu Aug 18 05:33:38 2016\n OS\/Arch:      linux\/amd64<\/pre>\n<h3>\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e15\u0e23\u0e35\u0e22\u0e21\u0e17\u0e38\u0e01\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e41\u0e25\u0e49\u0e27 \u0e21\u0e32\u0e40\u0e25\u0e48\u0e19 Docker swarm mode \u0e01\u0e31\u0e19<\/h3>\n<p>\u0e17\u0e35\u0e48 <strong>Master node<\/strong> \u0e43\u0e2b\u0e49\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 swarm \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32<\/p>\n<pre>$ <strong>sudo docker swarm init --advertise-addr 10.128.0.2<\/strong>\nSwarm initialized: current node (9b2jbohlnc1v66e6owd68g4hf) is now a manager.\n\nTo add a worker to this swarm, run the following command:\n\n    docker swarm join \\\n    --token SWMTKN-1-5btqy10qeeail85twv7lpmfkpsglb76khqbii00vkeh2yf9yew-bnrp6fvqd3tj2or41y6b5e3xy \\\n    10.128.0.2:2377\n\nTo add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.<\/pre>\n<p>\u0e17\u0e35\u0e48\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07 <strong>worker-01<\/strong> \u0e41\u0e25\u0e30 <strong>worker-02<\/strong> \u0e43\u0e2b\u0e49\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e21\u0e32\u0e08\u0e32\u0e01\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07 Master \u0e40\u0e21\u0e37\u0e48\u0e2d\u0e2a\u0e31\u0e01\u0e04\u0e23\u0e39\u0e48\u0e19\u0e35\u0e49<\/p>\n<pre>$ <strong>sudo docker swarm join \\\n>     --token SWMTKN-1-5btqy10qeeail85twv7lpmfkpsglb76khqbii00vkeh2yf9yew-bnrp6fvqd3tj2or41y6b5e3xy \\\n>     10.128.0.2:2377<\/strong>\nThis node joined a swarm as a worker.<\/pre>\n<p>\u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32\u0e17\u0e35\u0e48\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07 <strong>Master<\/strong> \u0e41\u0e25\u0e30\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e14\u0e39\u0e08\u0e30\u0e1e\u0e1a\u0e27\u0e48\u0e32\u0e17\u0e31\u0e49\u0e07 3 Node \u0e44\u0e14\u0e49\u0e40\u0e02\u0e49\u0e32\u0e2a\u0e39\u0e48 Cluster \u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27<\/p>\n<pre>$ <strong>sudo docker node ls<\/strong>\nID                           HOSTNAME    STATUS  AVAILABILITY  MANAGER STATUS\n2c4b4aa4w5tk6te8qws8dri2c    worker-02   Ready   Active        \n9b2jbohlnc1v66e6owd68g4hf *  master      Ready   Active        Leader\na99r92yxae6hbsevnmm76obqc    worker-01   Ready   Active<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0e21\u0e32\u0e25\u0e2d\u0e07\u0e40\u0e25\u0e48\u0e19\u0e02\u0e2d\u0e07\u0e40\u0e25\u0e48\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e17\u0e35\u0e48\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 Docker service \u0e01\u0e31\u0e1a Swarm mode \u0e01\u0e31\u0e19\u0e14\u0e39\u0e14\u0e35\u0e01\u0e27\u0e48\u0e32 \u0e0b\u0e36\u0e48\u0e07\u0e40\u0e08\u0e49\u0e32 service \u0e19\u0e35\u0e49\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23 deploy application \u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32\u0e40\u0e02\u0e32\u0e44\u0e1b\u0e22\u0e31\u0e07 swarm \u0e42\u0e14\u0e22\u0e08\u0e30\u0e22\u0e01\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e43\u0e19\u0e01\u0e32\u0e23\u0e19\u0e33 application \u0e17\u0e35\u0e48\u0e21\u0e35\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 my-nginx \u0e0b\u0e36\u0e48\u0e07\u0e17\u0e33\u0e07\u0e32\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e27\u0e47\u0e1b\u0e40\u0e0b\u0e34\u0e1f\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e14\u0e49\u0e27\u0e22 alpine \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 swarm<\/p>\n<p>&nbsp;<\/p>\n<p>\u0e17\u0e35\u0e48\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07 <strong>Master<\/strong> \u0e2a\u0e23\u0e49\u0e32\u0e07 service \u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 my-nginx \u0e42\u0e14\u0e22\u0e43\u0e2b\u0e49\u0e17\u0e33\u0e07\u0e32\u0e19 1 \u0e04\u0e2d\u0e19\u0e40\u0e17\u0e19\u0e40\u0e19\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e43\u0e2b\u0e49 expose port 8080 \u0e43\u0e2b\u0e49\u0e44\u0e14\u0e49\u0e40\u0e02\u0e49\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 docker image \u0e17\u0e35\u0e48\u0e21\u0e35\u0e0a\u0e37\u0e48\u0e2d\u0e27\u0e48\u0e32 matripe\/alpine-nginx:html<\/p>\n<pre><strong>$ sudo docker service create --replicas 1 --name my-nginx -p 8080:80 matriphe\/alpine-nginx:html\n<\/strong>\n9r24ixi1qffa6xc0z33keefpw\n<\/pre>\n<p>\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e08\u0e30\u0e1e\u0e1a\u0e27\u0e48\u0e32 my-nginx \u0e44\u0e14\u0e49\u0e40\u0e01\u0e34\u0e14\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e1a\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07 worker-02<\/p>\n<pre>$ <strong>sudo docker service ps my-nginx<\/strong><\/pre>\n<pre>ID                         NAME        IMAGE                       NODE        DESIRED STATE  CURRENT STATE           ERROR\n364qqjdsjhvl97ey0824dm3vm  my-nginx.1  matriphe\/alpine-nginx:html  worker-02   Running        Running 1 minutes ago<\/pre>\n<p>\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e25\u0e2d\u0e07\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a service \u0e17\u0e35\u0e48\u0e2a\u0e31\u0e48\u0e07\u0e43\u0e2b\u0e49\u0e17\u0e33\u0e07\u0e32\u0e19\u0e01\u0e47\u0e08\u0e30\u0e1e\u0e1a\u0e27\u0e48\u0e32\u0e21\u0e31\u0e19\u0e17\u0e33\u0e07\u0e32\u0e19\u0e41\u0e25\u0e30\u0e21\u0e35 container \u0e08\u0e33\u0e19\u0e27\u0e19 1 instance \u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e2d\u0e07\u0e23\u0e31\u0e1a\u0e07\u0e32\u0e19<\/p>\n<pre>$ <strong>sudo docker service inspect --pretty my-nginx<\/strong>\nID:             9r24ixi1qffa6xc0z33keefpw\nName:           my-nginx\nMode:           Replicated\n<strong> Replicas:      1<\/strong>\nPlacement:\nUpdateConfig:\n Parallelism:   1\n On failure:    pause\nContainerSpec:\n Image:         matriphe\/alpine-nginx:html\nResources:\nPorts:\n Protocol = tcp\n TargetPort = 80\n PublishedPort = 8080\n<\/pre>\n<p>\u0e21\u0e32\u0e25\u0e2d\u0e07 scale out service \u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e08\u0e32\u0e01 1 \u0e40\u0e1b\u0e47\u0e19 5 instance<\/p>\n<pre>$ <strong>sudo docker service scale my-nginx=5<\/strong>\nmy-nginx scaled to 5<\/pre>\n<p>\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23 scale<\/p>\n<pre>$ <strong>sudo docker service ps my-nginx<\/strong>\nID                         NAME        IMAGE                       NODE        DESIRED STATE  CURRENT STATE           ERROR\n364qqjdsjhvl97ey0824dm3vm  my-nginx.1  matriphe\/alpine-nginx:html  worker02    Running        Running 9 minutes ago   \n32ri1ue0emngcjszlhard206t  my-nginx.2  matriphe\/alpine-nginx:html  master      Running        Running 28 seconds ago  \nd8dhknajm254lis8vbday45kz  my-nginx.3  matriphe\/alpine-nginx:html  worker01    Running        Running 26 seconds ago  \n4eeuo4lftk5t7u8sa6wkhrzvg  my-nginx.4  matriphe\/alpine-nginx:html  worker01    Running        Running 26 seconds ago  \n80yor0lr1vsoqdbw5qmiy0vw4  my-nginx.5  matriphe\/alpine-nginx:html  worker02    Running        Running 28 seconds ago<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0e08\u0e30\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e27\u0e48\u0e32 Docker 1.12 \u0e19\u0e31\u0e49\u0e19\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e19\u0e01\u0e32\u0e23\u0e17\u0e33 cluster \u0e41\u0e25\u0e30 orchestration \u0e44\u0e14\u0e49\u0e14\u0e35\u0e21\u0e32\u0e01 \u0e17\u0e31\u0e49\u0e07\u0e19\u0e35\u0e49\u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e01\u0e32\u0e23\u0e2d\u0e31\u0e1e\u0e40\u0e14\u0e17\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e27\u0e34\u0e2a\u0e41\u0e1a\u0e1a\u0e04\u0e48\u0e2d\u0e22 \u0e46 \u0e17\u0e22\u0e2d\u0e22\u0e25\u0e14\u0e08\u0e33\u0e19\u0e27\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19\u0e40\u0e01\u0e48\u0e32\u0e25\u0e07\u0e41\u0e25\u0e30\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19\u0e43\u0e2b\u0e21\u0e48\u0e02\u0e36\u0e49\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e27\u0e48\u0e32 Rolling update \u0e44\u0e14\u0e49\u0e2d\u0e35\u0e01\u0e14\u0e49\u0e27\u0e22 \u0e41\u0e25\u0e30\u0e22\u0e31\u0e07\u0e21\u0e35 feature \u0e2d\u0e35\u0e01\u0e40\u0e22\u0e2d\u0e30 \u0e43\u0e2b\u0e49\u0e25\u0e2d\u0e07\u0e40\u0e25\u0e48\u0e19\u0e04\u0e23\u0e31\u0e1a \u0e2b\u0e32\u0e01\u0e43\u0e04\u0e23\u0e2a\u0e19\u0e43\u0e08\u0e01\u0e47\u0e44\u0e1b\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48 docker.com \u0e44\u0e14\u0e49\u0e40\u0e25\u0e22<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0e43\u0e19 Docker 1.12 \u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e43\u0e2b\u0e21\u0e48\u0e17\u0e35\u0e48\u0e19\u0e48\u0e32\u0e2a\u0e19\u0e43\u0e08\u0e02\u0e2d\u0e07 Docker \u0e04\u0e37\u0e2d Swarm Mode \u0e0b\u0e36\u0e48\u0e07\u0e40\u0e08\u0e49\u0e32 Swarm \u0e19\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48\u0e23\u0e31\u0e19 Docker \u0e2b\u0e25\u0e32\u0e22 \u0e46 \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e2b\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e2a\u0e20\u0e32\u0e1e\u0e41\u0e27\u0e14\u0e25\u0e49\u0e2d\u0e21\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html\">Read the post<span class=\"screen-reader-text\">\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":2416,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[352,11],"tags":[387,338,386],"jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 - EngineerBALL<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 - EngineerBALL\" \/>\n<meta property=\"og:url\" content=\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html\" \/>\n<meta property=\"og:site_name\" content=\"EngineerBALL\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/engineerball\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-30T12:18:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-06-11T14:32:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"ball\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@engineerball\" \/>\n<meta name=\"twitter:site\" content=\"@engineerball\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ball\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html\",\"url\":\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html\",\"name\":\"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 - EngineerBALL\",\"isPartOf\":{\"@id\":\"https:\/\/engineerball.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#primaryimage\"},\"image\":{\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#primaryimage\"},\"thumbnailUrl\":\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png\",\"datePublished\":\"2016-08-30T12:18:20+00:00\",\"dateModified\":\"2017-06-11T14:32:27+00:00\",\"author\":{\"@id\":\"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e\"},\"breadcrumb\":{\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#primaryimage\",\"url\":\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png\",\"contentUrl\":\"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png\",\"width\":800,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/engineerball.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/engineerball.com\/blog\/#website\",\"url\":\"https:\/\/engineerball.com\/blog\/\",\"name\":\"EngineerBALL\",\"description\":\"Damn Those Sweet Memories\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/engineerball.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e\",\"name\":\"ball\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/engineerball.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g\",\"caption\":\"ball\"},\"description\":\"Teerapat Khunpech Live, Tech, Beers, Bike, Cafe Racer, Docker, Devops, Eco-System\",\"sameAs\":[\"https:\/\/engineerball.com\",\"https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn\",\"https:\/\/twitter.com\/engineerball\"],\"url\":\"https:\/\/engineerball.com\/blog\/author\/ball\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 - EngineerBALL","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html","og_locale":"en_US","og_type":"article","og_title":"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 - EngineerBALL","og_url":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html","og_site_name":"EngineerBALL","article_publisher":"https:\/\/www.facebook.com\/engineerball","article_author":"https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn","article_published_time":"2016-08-30T12:18:20+00:00","article_modified_time":"2017-06-11T14:32:27+00:00","og_image":[{"width":800,"height":400,"url":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png","type":"image\/png"}],"author":"ball","twitter_card":"summary_large_image","twitter_creator":"@engineerball","twitter_site":"@engineerball","twitter_misc":{"Written by":"ball","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html","url":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html","name":"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 - EngineerBALL","isPartOf":{"@id":"https:\/\/engineerball.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#primaryimage"},"image":{"@id":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#primaryimage"},"thumbnailUrl":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png","datePublished":"2016-08-30T12:18:20+00:00","dateModified":"2017-06-11T14:32:27+00:00","author":{"@id":"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e"},"breadcrumb":{"@id":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#primaryimage","url":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png","contentUrl":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png","width":800,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/engineerball.com\/blog\/2016\/08\/30\/run-docker-swarm-in-5-second.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/engineerball.com\/blog"},{"@type":"ListItem","position":2,"name":"\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 Docker swarm \u0e20\u0e32\u0e22\u0e43\u0e19 5 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35"}]},{"@type":"WebSite","@id":"https:\/\/engineerball.com\/blog\/#website","url":"https:\/\/engineerball.com\/blog\/","name":"EngineerBALL","description":"Damn Those Sweet Memories","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/engineerball.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/engineerball.com\/blog\/#\/schema\/person\/415320d0da2d392375528001aa6ea53e","name":"ball","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/engineerball.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d8d00c01f55942d7c8f2dbc70a9cefe0?s=96&d=monsterid&r=g","caption":"ball"},"description":"Teerapat Khunpech Live, Tech, Beers, Bike, Cafe Racer, Docker, Devops, Eco-System","sameAs":["https:\/\/engineerball.com","https:\/\/www.facebook.com\/troueblemaker.khunpech?ref=tn_tnmn","https:\/\/twitter.com\/engineerball"],"url":"https:\/\/engineerball.com\/blog\/author\/ball"}]}},"jetpack_featured_media_url":"https:\/\/engineerball.com\/blog\/wp-content\/uploads\/2016\/08\/1-6xTDVqpaWLjqxu9Ua_qQvA.png","jetpack_shortlink":"https:\/\/wp.me\/p3Nmbl-CO","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts\/2406"}],"collection":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/comments?post=2406"}],"version-history":[{"count":14,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts\/2406\/revisions"}],"predecessor-version":[{"id":2467,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/posts\/2406\/revisions\/2467"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/media\/2416"}],"wp:attachment":[{"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/media?parent=2406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/categories?post=2406"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineerball.com\/blog\/wp-json\/wp\/v2\/tags?post=2406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}