单台 VPS 使用 docker,如何做到不间断平滑上线呢?

2022-02-12 14:43:00 +08:00
 yoa1q7y

目前手动停止容器,再使用新的镜像启动容器,总会有那么一点点期间服务不可用,想请教各位大佬怎么解决这个问题呢

1426 次点击
所在节点    VPS
5 条回复
juzisang
2022-02-12 14:48:04 +08:00
可以试试 docker stack deploy xxx.yaml ,配置文件语法和 docker compose 类似
对应配套的命令是 docker service xxx 系列命令
ETiV
2022-02-12 14:55:45 +08:00
想自己实现的话,学 Intel:Tick/Tock ,蓝绿发布

比如正在运行的容器名叫 tick-XX ,端口号 1080

deploy 新服务的时候,容器名就叫 tock-XX ,端口号 1090 。health check 没问题了去改 nginx 的 proxy_pass ,然后 reload nginx
yoa1q7y
2022-02-12 15:27:18 +08:00
@juzisang #1
@ETiV #2 好的,我研究研究,多谢~
gtgc2005
2022-02-13 21:05:37 +08:00
其实就算如同楼上说的,通过建立新的容器后修改反代,也会造成一个新的问题。就是新旧容器终归会有那么一点点时间数据不一致。在新容器建立和旧容器切换那段时间的数据会保存在旧容器里。这点要注意
Aliencn
2022-02-15 13:18:19 +08:00
上 k3s ,或者一楼的 docker swarm

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/833397

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX