环境
基于上一节的env/server:v0.1, env/worker:v0.1镜像, 在基于debian8.2的两台机器上测试部署docker swarm.
docker service部署
➜ ~ docker service create --replicas 1 --name server -e APP_PORT=5000 --network docker-net --publish 5000:5000 env/server:v0.1 image env/server:v0.1 could not be accessed on a registry to record its digest. Each node will access env/server:v0.1 independently, possibly leading to different nodes running different versions of the image. pzyx887jb112isgkyorarvt7t overall progress: 1 out of 1 tasks 1/1: running [==================================================>] verify: Service converged ➜ ~ ➜ ~ docker service create --replicas 2 --name worker -e APP_DOMAIN=server -e APP_PORT=5000 --network docker-net env/worker:v0.1 image env/worker:v0.1 could not be accessed on a registry to record its digest. Each node will access env/worker:v0.1 independently, possibly leading to different nodes running different versions of the image. wavv2ie7ad9je6s33q82f3skv overall progress: 2 out of 2 tasks 1/2: running [==================================================>] 2/2: running [==================================================>] verify: Service converged ➜ ~ docker service ls ID NAME MODE REPLICAS IMAGE PORTS pzyx887jb112 server replicated 1/1 env/server:v0.1 *:5000->5000/tcp wavv2ie7ad9j worker replicated 2/2 env/worker:v0.1 ➜ ~ docker service ps worker ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS hyjcg25ymfvx worker.1 env/worker:v0.1 debian-vm Running Running 42 seconds ago zpx2oq4q0dhu worker.2 env/worker:v0.1 debian Running Running 36 seconds ago
1 ➜ ~ docker ps 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3 a9b1931acf12 env/worker:v0.1 "python worker.py" 2 minutes ago Up 2 minutes worker.2.zpx2oq4q0dhuqgvtkt0mm8dyt 4 994e4779c252 env/server:v0.1 "python server.py" 3 minutes ago Up 3 minutes server.1.v5mu7wa8tfswayzwjh3u1qtpk 5 ➜ ~ docker exec 994e4779c252 cat /env/server/log/server.log 6 2018-11-21 23:02:33 [INFO] Waiting for connection... 7 2018-11-21 23:03:26 [INFO] ('10.0.0.5', 37802) connected 8 2018-11-21 23:03:27 [INFO] ('10.0.0.4', 54099) connected 9 ➜ ~ docker exec a9b1931acf12 cat /env/worker/log/worker.log 10 2018-11-21 23:03:27 [INFO] [+] ('10.0.0.2', 5000) connected 11 2018-11-21 23:03:27 [INFO] [recv] hello, docker! 12 ➜ ~ docker exec a9b1931acf12 ping -c 2 server 13 PING server (10.0.0.2) 56(84) bytes of data. 14 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.117 ms 15 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.205 ms 16 17 --- server ping statistics --- 18 2 packets transmitted, 2 received, 0% packet loss, time 1000ms 19 rtt min/avg/max/mdev = 0.117/0.161/0.205/0.044 ms