Обновление образа в сервисе без простоев

#docker #docker-compose #docker-swarm

#docker #docker-создать #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 . Как правильно развернуть новую версию образа в службе без простоев?

Ответ №1:

Способ добиться этого:

У меня есть несколько примеров на эту тему:


С этим вы можете просто запустить docker stack deploy... снова. Если в сервисе произошли изменения, он будет обновлен.

Ответ №2:

вы можете использовать команду docker service update --image , но она запустит новый контейнер с неявным масштабом 0/1.

Время простоя зависит от вашего приложения.