1. 程式人生 > >『中級篇』Docker service更新(52)

『中級篇』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. 拉取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

  1. 擴充套件容器數量
docker service scale web=2
docker service ls docker service ps web

  1. 編寫shell指令碼一直訪問
sh -c "while true;do curl 127.0.0.1:8080&&sleep 1;done"

  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

image.png

  1. 更新為埠
    埠更新可能存在業務中斷的情況
docker service update --publish-rm 8080:5000 --publish-add 8088:5000 web
docker service ps web
docker service  web
![](https://upload-images.jianshu.io/upload_images/11223715-6fade88e179915be.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![(https://upload-images.jianshu.io/upload_images/11223715-27d2f7fc53484ed0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![](https://upload-images.jianshu.io/upload_images/11223715-930fcf5a94462a8b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) PS:stack 更新 就不給大家演示了,其實跟這個類似的操作命令大同小異。
往期精彩