docker - 无需停机即可在 Docker Compose 堆栈中部署新镜像

标签 docker docker-compose high-availability

我们有一个多容器应用程序,它使用 microservices架构,在 Docker Compose 中运行。

例如,当我对 Web 应用程序进行代码更改时,我需要使用新代码重建图像,然后在我的撰写堆栈中再次运行它,而无需任何停机时间。

这是我们正在使用的当前事件序列:

  • 更改应用代码
  • 重建镜像
  • 推送图像(到 docker hub)
  • docker-compose down
  • docker-compose up

  • 运行后docker-compose down ,所有应用程序都关闭。然后docker-compose up将整个堆栈带回来。

    有没有一种方法可以在 Docker Compose 中重新部署单个镜像而不会出现任何停机时间和整个应用程序堆栈?

    最佳答案

    你可以避免同时放下所有东西( docker-compose down ),就像这样:

    docker-compose pull --parallel
    docker-compose up --force-recreate <specific-service-name1>
    

    这将拉取 & 停止 & 重新创建(运行)您的 <specific-service-name1>容器,不会接触任何其他容器。
    稍后您可以部署其余的:
    docker-compose up --force-recreate <specific-service-name2>
    docker-compose up --force-recreate <specific-service-name3>
    

    关于docker - 无需停机即可在 Docker Compose 堆栈中部署新镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45064446/

    相关文章:

    c# - 如何连接 ASP.NET Core(代码优先)和 SQL Server 的 docker 图像

    docker - 如何将 docker 数据容器引入 Kubernetes?

    java - 两节点 ZooKeeper 集成

    tomcat - HAProxy - 传输期间连接重置

    java - 架构该如何走?

    bash - 在构建期间为 Docker 添加别名

    docker - 可能定义用于在docker中公开 `-P`的端口范围吗?

    shell - Docker将文件从主机复制到容器

    docker - docker-compose build包含不受支持的选项: 'network'

    docker-compose.yml vs docker-stack.yml 有什么区别?