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

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

例如,当我对Web应用程序进行代码更改时,我需要用新代码重新构build映像,然后在我的撰写堆栈中再次运行它,而不会停机。

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

  1. 对应用程序代码进行更改
  2. 重build图像
  3. 推送图像(到docker集线器)
  4. docker-compose down
  5. docker-compose up

在运行docker-compose down ,所有的应用程序都closures了。 然后docker-compose up整个堆栈。

有没有办法在没有任何停机时间的情况下重新部署Docker Compose中的单个图像,而不必closures整个应用程序堆栈?

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

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

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

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