原始服务部署(防止升级失败)
docker stack deploy —compose-file=/nas/B1/www/study-cdn.51nca.com/svc/deploy.yml studycdn51ncacom

#设置集群滚动更新后保留的记录数
docker swarm update --task-history-limit 2 

滚动更新php
设置服务的scale数量:
docker service scale studycdn51ncacom_php=3
#检查服务(查看image)
docker service inspect --pretty studycdn51ncacom_php

#更改滚动更新配置
#更新镜像
docker service update --image registry.51nca.com:8950/php-fpm:7.3.33.mmram studycdn51ncacom_php
#带参更新
update-delay是每次更新的等待时间,即服务的启动时间 java之类的设置长一点
update-parallelism是同时更新数量
docker service update --update-delay=10s --update-parallelism=1 --image registry.51nca.com:8950/php-fpm:7.3.33.mmram  studycdn51ncacom_php
docker service update --update-delay=10s --update-parallelism=1 --image registry.51nca.com:8950/php-fpm:7.3.33.624  studycdn51ncacom_php



#在需要时可以重启整个服务
docker service update studycdn51ncacom_php

#查看滚动更新
docker service ps study
docker service inspect --pretty study

把服务的scale数量改回原来:
docker service scale studycdn51ncacom_php=1

更新失败回滚

docker service  update --rollback sngx_ngx1

实例

#重新服务
docker service update sngx_ngx1 
docker service update --update-delay=5s --update-parallelism=1 sngx_ngx1

* 添加端口
docker service update --publish-add 7011-7100:7011-7100 sngx_ngx1
* 删除端口
docker service update --publish-rm 7011-7100:7011-7100 sngx_ngx1

#添加目录
docker service update --mount-add source=/dataX,target=/logs myservice
#删除目录
docker service update --mount-rm source=/dataX,target=/logs myservice


#强制重新服务 
docker service update --force sngx_ngx1
或者
docker service scale sngx_ngx1=0
docker service scale sngx_ngx1=1