如何在不重新启动所有服务的情况下更新Docker堆栈

tpxzln5u  于 2023-01-25  发布在  Docker
关注(0)|答案(3)|浏览(212)

我有一个群集群,其中部署了不同的技术对接。(Zookeeper,Kafka,弹性, Storm 和自定义网络应用程序)
Web应用程序会发生巨大的变化,每次Web Docker发生变化时都必须更新堆栈。偶尔会有Elasticsearch图像的更新。
当我运行Docker堆栈部署时,它会重新启动所有甚至没有更改的现有Docker服务。这会妨碍整个堆栈,并导致整个应用程序停机。Docker堆栈没有更新选项。
有人能解决吗?

lhcgjxsq

lhcgjxsq1#

docker service update --image就可以了。
检查docker service update文档。

qyyhg6bp

qyyhg6bp2#

使用更改的配置(docker-compose.yml文件)重新部署堆栈解决了问题,请参见https://docs.docker.com/engine/reference/commandline/stack_deploy/#extended-description。他们在那里指出“从群上的compose或dab文件创建和更新堆栈。”而且我没有看到任何类似“dockerstackupdate”的命令。所以这可以解决问题。

gwbalxhn

gwbalxhn3#

如果您已经从compose.yml创建了Docker堆栈,并且您只需要从堆栈重新部署一个服务,只需执行以下操作:

docker service rm <your-service>

然后:

docker stack deploy -c compose.yml <stack-name>

您只需更新堆栈,而不是重新创建所有服务。

相关问题