通过以下 Referral 链接购买 DigitalOcean 主机,你将可以帮助 V2EX 持续发展
DigitalOcean - SSD Cloud Servers
yoa1q7y
V2EX  ›  VPS

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

  •  
  •   yoa1q7y · Feb 12, 2022 · 1904 views
    This topic created in 1577 days ago, the information mentioned may be changed or developed.

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

    5 replies    2022-02-15 13:18:19 +08:00
    juzisang
        1
    juzisang  
       Feb 12, 2022
    可以试试 docker stack deploy xxx.yaml ,配置文件语法和 docker compose 类似
    对应配套的命令是 docker service xxx 系列命令
    ETiV
        2
    ETiV  
       Feb 12, 2022 via iPhone
    想自己实现的话,学 Intel:Tick/Tock ,蓝绿发布

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

    deploy 新服务的时候,容器名就叫 tock-XX ,端口号 1090 。health check 没问题了去改 nginx 的 proxy_pass ,然后 reload nginx
    yoa1q7y
        3
    yoa1q7y  
    OP
       Feb 12, 2022
    @juzisang #1
    @ETiV #2 好的,我研究研究,多谢~
    gtgc2005
        4
    gtgc2005  
       Feb 13, 2022   ❤️ 1
    其实就算如同楼上说的,通过建立新的容器后修改反代,也会造成一个新的问题。就是新旧容器终归会有那么一点点时间数据不一致。在新容器建立和旧容器切换那段时间的数据会保存在旧容器里。这点要注意
    Aliencn
        5
    Aliencn  
       Feb 15, 2022   ❤️ 1
    上 k3s ,或者一楼的 docker swarm
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1118 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 18:02 · PVG 02:02 · LAX 11:02 · JFK 14:02
    ♥ Do have faith in what you're doing.