目前手动停止容器,再使用新的镜像启动容器,总会有那么一点点期间服务不可用,想请教各位大佬怎么解决这个问题呢
1
juzisang 2022-02-12 14:48:04 +08:00
可以试试 docker stack deploy xxx.yaml ,配置文件语法和 docker compose 类似
对应配套的命令是 docker service xxx 系列命令 |
2
ETiV 2022-02-12 14:55:45 +08:00 via iPhone
想自己实现的话,学 Intel:Tick/Tock ,蓝绿发布
比如正在运行的容器名叫 tick-XX ,端口号 1080 deploy 新服务的时候,容器名就叫 tock-XX ,端口号 1090 。health check 没问题了去改 nginx 的 proxy_pass ,然后 reload nginx |
4
gtgc2005 2022-02-13 21:05:37 +08:00 1
其实就算如同楼上说的,通过建立新的容器后修改反代,也会造成一个新的问题。就是新旧容器终归会有那么一点点时间数据不一致。在新容器建立和旧容器切换那段时间的数据会保存在旧容器里。这点要注意
|
5
Aliencn 2022-02-15 13:18:19 +08:00 1
上 k3s ,或者一楼的 docker swarm
|