如何停止已部署的docker堆栈?

spw*_*spw 16 docker docker-stack

我刚刚完成了初学者Docker教程,想知道如何清理.

我使用以下命令部署了一个堆栈并使用了一些不同的服务:

docker stack deploy --compose-file docker-stack.yml vote 
Run Code Online (Sandbox Code Playgroud)

是否可以停止与此堆栈关联的所有容器,或者我是否必须单独停止它们?

谢谢!

BMi*_*tch 25

您可以删除堆栈:

docker stack rm vote
Run Code Online (Sandbox Code Playgroud)

目前,这仍然是一个独立的操作,需要时间在后台运行.


如果由于某种原因您仍然需要堆栈和服务定义,则可以将"复制"服务缩减为0个副本,而"全局"服务可以添加与任何节点不匹配的约束.

docker service update --replicas 0 $service_name
docker service update --constraint-add no_such_node=true $service_name
Run Code Online (Sandbox Code Playgroud)

  • 我只想提一下,所有容器停止可能需要一段时间(10-15秒).我认为`docker stack rm`没有清理所有东西,这就是我发现这个问题的原因. (3认同)
  • docker stack rm是否也删除了容器?不应该有一条命令在需要时才停止它们吗? (3认同)
  • 以下为我工作的“全局”部署,Windows Docker Swarm `docker service update --constraint-add no_such_node==true $service_name` (2认同)