在Docker Compose堆栈中部署新映像,无需停机

时间:2017-07-12 17:47:32

标签: docker docker-compose high-availability

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

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

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

  1. 更改应用代码
  2. 重建图片
  3. 推送图像(到泊坞窗集线器)
  4. docker-compose down
  5. docker-compose up
  6. 运行docker-compose down后,所有应用都会停止运行。然后docker-compose up将整个堆栈重新启动。

    有没有办法在没有任何停机时间的情况下在Docker Compose中重新部署单个映像,而且不会导致整个应用程序堆栈崩溃?

1 个答案:

答案 0 :(得分:1)

您可以避免同时放下所有内容(docker-compose down),只需使用以下内容:

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

这将拉动&amp;停止&amp;重新创建(运行)您的<specific-service-name1>容器,不会触及任何其他容器 稍后您可以部署其余部分:

docker-compose up --force-recreate <specific-service-name2>
docker-compose up --force-recreate <specific-service-name3>