Я могу включить автозапуск с помощью --restart=always
, но после того, как я остановлю контейнер, как мне отключить этот атрибут?
Я обычно запускаю веб-сервер и обычно сопоставляю порт 80:
docker run -d --restart=always -p 80:80 -i -t myuser/myproj /bin/bash
Но бывают случаи, когда я хочу запустить более новую версию своего образа, но я хочу сохранить старый контейнер. Проблема в том, что если есть несколько контейнеров с --restart=always
, запускается только один из них (случайно?), Потому что все они борются за порт 80 на хосте.
docker update --restart=no $(docker ps -a -q)
чтобы обновить все ваши контейнеры :-)Вы можете начать свой контейнер с
--restart=unless-stopped
.источник
Используйте ниже, чтобы отключить ВСЕ контейнеры с автоматическим перезапуском (демон).
Используйте следующее, чтобы отключить перезапуск одного контейнера.
Рациональный :
Docker предоставляет политики перезапуска, чтобы контролировать, будут ли контейнеры запускаться автоматически при выходе или при перезапуске Docker. Это часто очень полезно, когда Docker запускает ключевой сервис.
Ноты
Если вы используете docker-compose, это может быть полезно знать.
источник
Если у вас есть рой, перезапускающий контейнеры, рой перезапустит все контейнеры, которые вы остановили или запустили, независимо от опции перезапуска. Это особенность, а не ошибка.
Убедитесь, что вы не используете службу, о которой вы забыли:
Затем вы можете остановить службу
источник
ls
приводит к ошибкеError response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.