在Docker Compose堆栈中部署新镜像,无需停机
我们有一个多容器应用程序,它使用一个微服务架构,在Docker Compose中运行。
例如,当我对Web应用程序进行代码更改时,我需要用新代码重新构build映像,然后在我的撰写堆栈中再次运行它,而不会停机。
以下是我们正在使用的当前事件序列:
- 对应用程序代码进行更改
- 重build图像
- 推送图像(到docker集线器)
docker-compose down
-
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>