【问题标题】:How can I remove shutdown Docker Service tasks after a rolling update?滚动更新后如何删除关闭的 Docker 服务任务?
【发布时间】:2017-01-17 19:12:23
【问题描述】:

我正在使用 Docker Swarm 在 AWS 上测试服务。我最近对服务应用了这样的更新:

 docker service update --image TestImage:v2 --update-parallelism 2 \
--update-delay 10s TestService2

更新按预期工作,服务将任务容器更新到 v2。然而,一个快速的docker service ps TestService2 | grep "v1" 显示了一堆关闭的TestImage:v1 任务。

a0w77kj0k6jfg4r9g4nz47zzg   \_ TestService2.1   TestImage:v1  W1  Shutdown       Shutdown 36 minutes ago
2of4mc63ekzbib01w3x7q6sdm   \_ TestService2.2   TestImage:v1  W2  Shutdown       Shutdown 37 minutes ago
495frrpza5pxt205o1594x54a   \_ TestService2.3   TestImage:v1  W1  Shutdown       Shutdown 36 minutes ago
57l0gsqd26u2e5gdj30w8mcn9   \_ TestService2.4   TestImage:v1  M1  Shutdown       Shutdown 36 minutes ago
baoe1i79fswb34ydwbpafg6tm   \_ TestService2.5   TestImage:v1  M3  Shutdown       Shutdown 35 minutes ago
3uxi7kwxb73z69km6s17son58   \_ TestService2.6   TestImage:v1  M2  Shutdown       Shutdown 37 minutes ago
99cg4arnt1y52nd8d422bdu49   \_ TestService2.7   TestImage:v1  M3  Shutdown       Shutdown 36 minutes ago
cq5716jqp40h6jugo1j9ilzwp   \_ TestService2.8   TestImage:v1  M1  Shutdown       Shutdown 35 minutes ago
awlz1kxbrjk51dey7frm14d8u   \_ TestService2.9   TestImage:v1  W3  Shutdown       Shutdown 35 minutes ago
4xdi9a1jweyehfqlt76uynf3i   \_ TestService2.10  TestImage:v1  M2  Shutdown       Shutdown 36 minutes ago
eo4t6i0gaj5i294fcdnb3qncq   \_ TestService2.11  TestImage:v1  W3  Shutdown       Shutdown 35 minutes ago
3ydeuxdjquulv5xj94b9ovuwu   \_ TestService2.12  TestImage:v1  W1  Shutdown       Shutdown 36 minutes ago

如何在不访问每个单独的 swarm 节点并在退出的容器上运行 docker rm 的情况下删除这些?我认为没有docker service 命令可以做到这一点,我已经查看了文档,但是有人知道我可以在 Swarm Manager 上运行以清理节点的 hack 或脚本吗?

谢谢!

【问题讨论】:

    标签: docker containers docker-swarm


    【解决方案1】:

    这些服务的容器在滚动更新后被移除;你只是留下了那些被关闭的日志。

    您可以限制使用的数量

    docker swarm update --task-history-limit 5 
    

    【讨论】:

    • 更新后多久会被删除?如果我登录到一个节点并执行docker ps -a,我会看到容器仍然存在但已退出。
    • 嘿哈里斯,你现在可能已经找到了答案,但我会为其他人回答。 Docker 保留了过去服务的多个副本,但在您更新时会删除它们。因此,如果您的历史记录已满,最旧的副本将立即被删除,而最近删除的副本将添加到您的历史记录中。
    • 我需要立即清除它,所以我将限制设置为 1。在下一个查询中,它只列出了“运行”的。
    • 即使在删除所有退出的容器并将任务历史限制设置为 1 之后,我仍然看到关闭任务。这些指令在最新版本的 Docker 中仍然可行还是不再适用?
    【解决方案2】:
    yi92mgl7z8jb        web.2               nginx:latest        manager1            Running             Running 11 minutes ago
    0cmzbd1oxwqr         \_ web.2           nginx:latest        manager1            Shutdown            Failed 11 minutes ago     "task: non-zero exit (255)"
    moe7hex4qvmg         \_ web.2           nginx:latest        manager1            Shutdown            Shutdown 11 minutes ago
    iyxs118uo67d         \_ web.2           nginx:latest        manager1            Shutdown            Shutdown 10 hours ago
    v3uxafpxc4d3         \_ web.2           nginx:latest        manager1            Shutdown            Shutdown 11 minutes ago
    6upsy8gvyrsn        web.5               nginx:latest        manager1            Running             Running 11 minutes ago
    mlaxkfusunqe         \_ web.5           nginx:latest        manager1            Shutdown            Failed 11 minutes ago     "task: non-zero exit (255)"
    bh3nkp05yd6r         \_ web.5           nginx:latest        manager1            Shutdown            Shutdown 11 minutes ago
    lqedayxq7gr9         \_ web.5           nginx:latest        manager1            Shutdown            Shutdown 10 hours ago
    xryxpfjsrdja         \_ web.5           nginx:latest        manager1            Shutdown            Shutdown 11 minutes ago
    

    我做到了

    docker swarm update --task-history-limit 2

    docker-machine stop manager1

    docker-machine start manager1

    PS C:\> docker service ps web | Select-String "manager1"

    3ogu1r0y6s6t        web.2               nginx:latest        manager1            Running             Running 3 minutes ago
    0cmzbd1oxwqr         \_ web.2           nginx:latest        manager1            Shutdown            Failed 3 minutes ago      "task: non-zero exit (255)"
    wbxr5hubftfa        web.5               nginx:latest        manager1            Running             Running 3 minutes ago
    bh3nkp05yd6r         \_ web.5           nginx:latest        manager1            Shutdown            Shutdown 25 minutes ago
    

    谢谢你,Geige V

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2021-08-03
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2019-07-05
      相关资源
      最近更新 更多