为了本书的排版效果,输出内容有所裁剪,只展示了受变更影响的服务 。
注意关于visualizer服务有两行内容 。其中一行表示某个副本在3s前停止,另一行表示新副本已经运行了1s 。这是因为刚才对visualizer服务作了修改,所以Swarm集群终止了正在运行的副本,并且启动了新的副本,新副本中更新了stop_grace_period的值 。
还需要注意的是,appserver服务目前拥有10个副本,但不同副本的“CURRENT STATE”一列状态并不相同:有些处于running状态,而有些仍在starting状态 。
经过足够的时间,集群的状态会完成收敛,期望状态和当前状态就会保持一致 。在那时,集群中实际部署和观察到的状态,就会跟Stack文件中定义的内容完全一致 。这真是让人开心的事情 。
所有应用/Stack都应采用该方式进行更新 。所有的变更都应该通过Stack文件进行声明,然后通过docker stack deploy进行部署 。
正确的删除某个Stack方式是通过docker stack rm命令 。一定要谨慎!删除Stack不会进行二次确认 。
$ docker stack rm seastackRemoving service seastack_appserverRemoving service seastack_databaseRemoving service seastack_payment_gatewayRemoving service seastack_reverse_proxyRemoving service seastack_visualizerRemoving network seastack_front-tierRemoving network seastack_paymentRemoving network seastack_defaultRemoving network seastack_back-tier注意,网络和服务已经删除,但是密钥并没有 。这是因为密钥是在Stack部署前就创建并存在了 。在Stack最上层结构中定义的卷同样不会被docker stack rm命令删除 。这是因为卷的设计初衷是保存持久化数据,其生命周期独立于容器、服务以及Stack之外 。
本文摘自《深入浅出Docker》
【使用Docker Stack部署应用】
推荐阅读
- Mac使用Socket报错
- 如何使用Python执行js代码
- 使用Swoole协程实现 WebRTC 信令服务器
- 利用docker部署solo并升级为https
- Mybaits中Like 的使用方式以及一些注意点
- 人马该怎样玩?
- 使用 Go 语言实现凯撒加密
- 对讲机电池原理和使用注意事项
- 学会这些,操作docker image镜像就够了
- 使用cors完成跨域请求处理
