【问题标题】:How to stop a deployed docker stack?如何停止已部署的 docker 堆栈?
【发布时间】:2017-01-24 20:13:41
【问题描述】:

我刚刚完成了beginners Docker tutorials,想知道如何清理。

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

docker stack deploy --compose-file docker-stack.yml vote 

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

【问题讨论】:

    标签: docker docker-stack


    【解决方案1】:

    您可以使用以下方法删除堆栈:

    docker stack rm vote
    

    目前这仍然是一个分离的操作,需要时间在后台运行。


    如果由于某种原因您仍然需要堆栈和服务定义,您可以将“复制”服务缩减到 0 个副本,并且“全局”服务可以添加不匹配任何节点的约束。

    docker service update --replicas 0 $service_name
    docker service update --constraint-add node.labels.no_such_node=true $service_name
    

    【讨论】:

    • 我只想提一下,所有容器都可能需要一段时间(10-15 秒)才能停止。我认为docker stack rm 没有清理所有内容,这就是我发现这个 SO 问题的原因。
    • docker stack rm 不是也在删除容器吗?不应该有一个命令在需要时停止它们吗?
    • Swarm 模式编排的目标是使当前状态与您的目标定义相匹配。因此,“停止所有容器”会将您当前的状态带出目标状态目标,并且 swarm 将尝试纠正该问题。您可以通过更改目标来做到这一点,但这需要按服务完成。
    • 以下为我工作的“全球”部署,Windows Docker Swarm docker service update --constraint-add no_such_node==true $service_name
    猜你喜欢
    • 2018-02-16
    • 1970-01-01
    • 2020-05-18
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多