原始服务部署(防止升级失败)
docker stack deploy —compose-file=/nas/B1/www/study-cdn.51nca.com/svc/deploy.yml studycdn51ncacom
#设置集群滚动更新后保留的记录数
docker swarm update --task-history-limit 5
滚动更新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