1、在service 运行的情况下 进行更新
1)创建 名为 demo 的 overlay 网络
[vagrant@swarm-manager ~]$ docker network create -d overlay demo
2)创建 python-flask-demo:1.0 服务
映射 本地的 8080 端口 到 容器的 5000端口
[vagrant@swarm-manager ~]$ docker service create --name web --publish 8080:5000 --network demo xiaopeng163/python-flask-demo:1.0
3)查看运行的服务器
[vagrant@swarm-manager ~]$ docker service ps web
4)横向拓展 web 应用
[vagrant@swarm-manager ~]$ docker service scale web=2
5)查看
[vagrant@swarm-manager ~]$ docker service ps web
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
rdmf3zqqvjlh web.1 xiaopeng163/python-flask-demo:1.0 swarm-worker2 Running Running 3 minutes ago
q12k2zyv8zgm web.2 xiaopeng163/python-flask-demo:1.0 swarm-manager Running Running 11 seconds ago
6)shell 循环请求 web
在swarm-worker2中执行
[vagrant@swarm-worker2 ~]$ sh -c "while true;do curl 127.0.0.1:8080 && sleep 1; done"
7)在swarm-manager执行更新 service image
[vagrant@swarm-manager ~]$ docker service update --image xiaopeng163/python-flask-demo:2.0 web
8)查看容器详情
[vagrant@swarm-manager ~]$ docker service ps web
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
sdn95esa3jzr web.1 xiaopeng163/python-flask-demo:2.0 swarm-worker2 Running Running 47 seconds ago
rdmf3zqqvjlh \_ web.1 xiaopeng163/python-flask-demo:1.0 swarm-worker2 Shutdown Shutdown 48 seconds ago
q0nfmdskials web.2 xiaopeng163/python-flask-demo:2.0 swarm-manager Running Running about a minute ago
q12k2zyv8zgm \_ web.2 xiaopeng163/python-flask-demo:1.0 swarm-manager Shutdown Shutdown about a minute ago
9). 更新 service 端口映射 将 外部访问端口 8080 变换 8888
[vagrant@swarm-manager ~]$ docker service update --publish-rm 8080:5000 --publish-add 8888:5000 web
10) docker-compose 文件更新
[vagrant@swarm-manager ~]$ docker stack deploy wordpress -c=docker-compose.yml