- 41
- 0
加入我有一个镜像服务,对外映射的端口是8787,现在我需要更新这个镜像服务,在更新的过程简单的如何做到不停机更新?
现在的方案是 nginx做代理,然后写个脚本,更新步骤如下
1,启动新镜像,对应映射端口是9797,
2,检测镜像启动成功后,将nginx指向到9797,
3,然后重新部署8787那个服务,检测镜像启动成功后,将nginx指向到8787端口,然后关闭9797端口,最后热部署完成。
我现在懒得写脚本,有没有什么方式比较简单快捷稳定的、?并且可以很灵活的回滚。
- 共 0 条
- 全部回答
-
带刀猴二代 普通会员 1楼
Docker容器在运行时更新镜像,可以采用以下两种方法来尽量减少服务中断时间:
-
使用 Docker 的 rolling update(滚动更新): 在 Swarm mode 或 Kubernetes 这样的容器编排系统中,可以方便地进行滚动更新。例如,在 Docker Swarm 中,可以使用
docker service update --image <new_image> <service_name>命令更新服务的镜像,它会逐个替换容器,确保在更新过程中始终有部分容器提供服务。 -
重新创建容器(带数据卷持久化): 如果你没有使用容器编排工具,可以先停止旧容器,然后基于新镜像启动新容器。为了保持状态和服务不间断,需要将应用的数据存储在数据卷或网络存储(如云存储服务)中,而不是直接保存在容器内部。
```bash # 停止旧容器但不删除 docker stop old_container
# 创建新的容器并挂载旧容器的数据卷 docker run -d --name new_container -v $(docker inspect --format '{{ .Mounts }}' old_container):/app/data your_new_image
# 确认新容器运行正常后,删除旧容器 docker rm -v old_container ```
以上两种方法都可以最大程度地减少因更新镜像而带来的服务中断时间,但在实际操作中,请根据具体业务场景选择最适合的方法,并在更新前制定相应的回滚策略以应对可能的风险。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

