我有一个带docker服务的AWS EC2。该服务只有一个容器,当我更新容器(更改图像(时,我会有一个停机时间(大约1分钟(。
这是我的docker服务创建代码:
docker service create
--name service-$IMAGE_NAME
--publish 80:80
--env ENVIRONMENT=$(cat /etc/service_environment)
--env-file=/etc/.env
--replicas=1
--update-failure-action rollback
--update-order start-first
$ECR_IMAGE
此处更新代码:
#pull image from private ECR repository
docker pull $IMAGE
docker service update
--force
--image $IMAGE:latest
--update-failure-action rollback
--update-order start-first
service-$IMAGE_NAME
为什么会发生这种情况?怎么了?谢谢
更改镜像意味着您将停止现有的docker实例,并启动一个新实例。这就是为什么它会下降一段时间,在你的情况下,是1分钟。现在是docker实例重新启动的时候了。您可以使用2 ec2实例和负载均衡器来实现无缝连接。您更新了一个实例并将流量重新初始化到另一个实例,然后在更新成功后更新另一个。