【问题标题】:docker swarm easy rolling update without downtimedocker swarm 无需停机即可轻松滚动更新
【发布时间】:2022-03-23 22:15:58
【问题描述】:

我在 docker swarm 上有一个只有 1 个实例的服务。它向机器公开一个端口。

我希望 docker swarm 在不停机的情况下轻松应用滚动更新。现在我正在运行docker service rm,然后是docker service create

仅使用 1 个实例/副本,就像我使用 websockets 一样。

对于暴露端口的单个实例的滚动更新,我应该使用什么最佳策略和命令。

【问题讨论】:

  • 为什么要删除服务?

标签: docker docker-swarm


【解决方案1】:

我尝试了顺序:先启动副本:1. 使用此设置,现有的 docker 容器在启动新的 docker 容器之前关闭。因此,开始优先或停止优先的顺序似乎并不重要,或者开始优先没有按预期工作。

如果我设置副本:2,那么现有的 docker 容器之一将被新的 docker 容器替换,然后在成功之后,第二个 docker 容器将替换另一个现有的 docker 容器

【讨论】:

    【解决方案2】:

    实现此目的的一种方法是在 compose 文件的 docker 服务的 update_config 部分中使用 order:start-first。当您应用滚动更新或部署较新版本时,它将在终止旧容器之前启动一个新容器。

    您可以在此处查看有关update_config 的更多详细信息:https://docs.docker.com/compose/compose-file/compose-file-v3/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 2023-01-23
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2016-12-30
      • 2015-11-14
      相关资源
      最近更新 更多