docker-compose实现滚动更新
·
背景
平时我们在用docker-compose更新服务的时候,当我们敲下docker-compose up -d service
回车之后到服务成功启动起来之前的这段时间,该service是不会提供服务的。这还是建立在服务正常启动的情况下,如果服务没有正常启动,那该service停止服务的时间会更长。有没有一种可以在更新的时候不打扰原本服务的运行,在更新结束后替换调原本的服务呢?
思路
命令行输入docker-compose up --help
回车我们会发现:
相信看到这,大家或多或少都有点思路了吧~那就是我们的更新服务的时候,容器数量设置成2个,因为原本该服务已经有一个容器在跑了,这个时候docker会再生成一个新的容器用来跑新的服务,当新的服务起来的时候,我们可以停止并删除原来老的容器,这样就实现了滚动更新。
步骤
1.加载要更新的镜像包
docker load < service.tar
2.启动服务(设置两个运行容器)
docker-compose up -d --scale service=2 --no-recreate
ps:这里的service是你的服务名
3.停止并删除原本服务容器
docker stop containerId
docker rm containerId
ps:这里的containerId是你老服务的容器id
更多推荐
所有评论(0)