gpt4 book ai didi

docker - Docker Swarm在 'docker stack deploy'之后重复了容器

转载 作者:行者123 更新时间:2023-12-02 18:38:52 25 4
gpt4 key购买 nike

我正在运行由一个管理器节点和一个工作器节点组成的docker群。我的应用程序正在工作程序上运行。例如,一个Wordpress Stack由一个wordpress服务,一个mysql服务和一个备份服务组成。
在docker-compose.yml文件中,我使用以下约束来确保wordpress仅在worker节点上运行:

deploy:
placement:
constraints:
- node.role == worker

要启动堆栈,我运行以下命令:
docker stack deploy -c ~/myapp/docker-compose.yml myapp

到目前为止,一切正常。

现在的问题是,当我更改配置(在docker-compose.yml文件中)时,我在管理器节点上调用了同一命令以重新启动堆栈:
docker stack deploy -c ~/myapp/docker-compose.yml myapp

服务正在正确重新启动,我可以看到我的更改。
但是现在旧的容器仍在运行。他们抢夺内存和CPU。

为什么会发生这种情况?为什么docker swarm在旧容器更新后不停止?我必须手动停止它们。

最佳答案

要“停止”堆栈,您需要docker stack rm [stack-name]:

docker stack rm myapp
#check the status on that bad boy before re-deploying:
docker stack ps myapp

我同意您的假设,即应该针对已经运行的堆栈重新启动堆栈,并调用 docker stack deploy -不知道是否有特定的原因导致该堆栈不重新部署。

关于docker - Docker Swarm在 'docker stack deploy'之后重复了容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49593319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com