V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
通过以下 Referral 链接购买 DigitalOcean 主机,你将可以帮助 V2EX 持续发展
DigitalOcean - SSD Cloud Servers
yoa1q7y
V2EX  ›  VPS

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

  •  
  •   yoa1q7y · 2022-02-12 14:43:00 +08:00 · 1295 次点击
    这是一个创建于 802 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2022-02-15 13:18:19 +08:00
    juzisang
        1
    juzisang  
       2022-02-12 14:48:04 +08:00
    可以试试 docker stack deploy xxx.yaml ,配置文件语法和 docker compose 类似
    对应配套的命令是 docker service xxx 系列命令
    ETiV
        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
    yoa1q7y
        3
    yoa1q7y  
    OP
       2022-02-12 15:27:18 +08:00
    @juzisang #1
    @ETiV #2 好的,我研究研究,多谢~
    gtgc2005
        4
    gtgc2005  
       2022-02-13 21:05:37 +08:00   ❤️ 1
    其实就算如同楼上说的,通过建立新的容器后修改反代,也会造成一个新的问题。就是新旧容器终归会有那么一点点时间数据不一致。在新容器建立和旧容器切换那段时间的数据会保存在旧容器里。这点要注意
    Aliencn
        5
    Aliencn  
       2022-02-15 13:18:19 +08:00   ❤️ 1
    上 k3s ,或者一楼的 docker swarm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3849 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:14 · PVG 12:14 · LAX 21:14 · JFK 00:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.