原创文章,欢迎转载。转载请注明:转载自 IT人故事会,谢谢!
原文链接地址: 『中级篇』Docker service更新(52)
serive更新其实并不是简单的更新,在swarm模式下的service都是在运行的,正在运行的进行更新,swarm是生产环境,我们不想因为更新中断咱们的业务,想的是不影响正常的业务开展。在现实生产环境进行不宕机的更新远比现在咱们这种要复杂的多的多,咱们这次演示可能稍微简单,只是让大家明白一个思路。
源码: https://github.com/limingios/docker/tree/master/No.5/labs/wordpress
创建service
必须创建overlay的network
sudo docker network create -d overlay demo
创建servie
先创建一个service,从hub中拉取1.0版本,然后扩展service里面的容器数量为2,通过shell脚本的方式访问容器返回结果,然后将拉取1.0的版本升级为2.0版本,查看shell访问的返回是否中断
拉取1.0版本
docker service create --name web -p 8080:5000 --network demo xiaopeng163/python-flask-demo:1.0 docker service ls docker service ps web
扩展容器数量
docker service scale web=2 docker service ls docker service ps web
编写shell脚本一直访问
sh -c "while true;do curl 127.0.0.1:8080&&sleep 1;done"
更新为2.0
中间没有发生中断操作,直接升级成了2.0
docker service update --image xiaopeng163/python-flask-demo:2.0 web #1.0已经shutdown了,启动了2.0 docker service ps web
image.png
更新为端口
端口更新可能存在业务中断的情况
docker service update --publish-rm 8080:5000 --publish-add 8088:5000 web docker service ps web docker service web
PS:stack 更新 就不给大家演示了,其实跟这个类似的操作命令大同小异。
回贴