『中级篇』Docker service更新(52)
2018-10-06 21:25:08
李明
  • 访问次数: 146
  • 注册日期: 2018-07-09
  • 最后登录: 2018-10-23

原创文章,欢迎转载。转载请注明:转载自 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

166498ca43e0ffed?w=1141&h=333&f=png&s=14

  • 创建servie

先创建一个service,从hub中拉取1.0版本,然后扩展service里面的容器数量为2,通过shell脚本的方式访问容器返回结果,然后将拉取1.0的版本升级为2.0版本,查看shell访问的返回是否中断

  1. 拉取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

166498ca43fb1e2e?w=1240&h=194&f=png&s=35

  1. 扩展容器数量

docker service scale web=2 docker service ls docker service ps web

166498ca4441c86b?w=1240&h=235&f=png&s=36

  1. 编写shell脚本一直访问

sh -c "while true;do curl 127.0.0.1:8080&&sleep 1;done"

166498caf7bf0580?w=1211&h=372&f=png&s=44

  1. 更新为2.0

中间没有发生中断操作,直接升级成了2.0

docker service update --image xiaopeng163/python-flask-demo:2.0 web #1.0已经shutdown了,启动了2.0 docker service ps web

166498caf7ca8919?w=1240&h=258&f=png&s=41
image.png
image.png 166498cc8c6044e4?w=378&h=398&f=png&s=248

  1. 更新为端口

端口更新可能存在业务中断的情况

docker service update --publish-rm 8080:5000 --publish-add 8088:5000 web docker service ps web docker service  web

166498cc8ec890ce?w=1240&h=608&f=png&s=82

![( https://upload-images.jianshu.io/upload_images/11223715-27d2f7fc53484ed0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

166498cb4472a5e1?w=1069&h=204&f=png&s=48

PS:stack 更新 就不给大家演示了,其实跟这个类似的操作命令大同小异。


1663a2acbc43cee2?w=1080&h=541&f=png&s=45