我正在使用 docker-compose 在同一主机上部署多个容器。我的图像在 Google Cloud Build 中构建并存储在 gcr.io;我没有使用 docker-compose 来构建我的图像。
当我运行docker-compose pull
后跟时docker-compose up -d
,会为我的图像创建新容器。但是,如果我docker ps
在另一个选项卡中运行,我观察到我的容器在创建新容器时会离线几秒钟。
有没有办法告诉 docker-compose 重新创建然后重新启动容器而不会停机?
这是我们发现的一个非常简单的解决方案,可以实现零停机时间,蓝绿色风格的部署只需
docker-compose
和nginx
:https ://engineering.tines.com/blog/simple-zero-downtime-deploys 。事实证明,这里只需要一个放置良好的 bash 脚本!这种方法节省了我们将其他依赖项添加到我们的堆栈中。这是中心部分:
希望这可以帮助其他人。
docker-compose up
其本身不支持任何零停机时间的部署方式。https://docs.docker.com/compose/reference/up/
您需要实现自己的蓝/绿部署或查看 kubernetes 的滚动更新: https ://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/