在不停机的情况下更新服务中的映像

时间:2019-04-09 06:40:10

标签: docker docker-compose docker-swarm

我正在Docker Swarm上运行服务。这是我部署服务的步骤:

docker swarm init
docker stack deploy -c docker-compose.yml MyApplication

docker-compose.yml的内容:

version: "3"
services:
    web:
        image: myimage:1.0
        ports:
            - "9000:80"
            - "9001:443"
        deploy:
            replicas: 3
            resources:
                limits:
                    cpus: "0.5"
                    memory: 256M
                restart_policy:
                    condition: on-failure

不要说我更新了应用程序并构建了新映像myimage:2.0。在不停机的情况下将新版本的映像部署到服务的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用命令docker service update --image,但是它将启动一个隐式比例为0/1的新容器。

停机时间取决于您的应用程序。

答案 1 :(得分:2)

一种实现此目的的方法是:

关于这个主题,我有一些例子:


有了这个,您可以简单地再次运行parallelism。如果服务有更改,则会对其进行更新。