环境

基于上一节的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
manager node上测试服务可用和可发现

相关文章: