Как автоматически перезапустить контейнер Docker после перезагрузки в CoreOS?
предполагая, что демон Docker перезапускается автоматически любым init.d или systemd как процесс при перезапуске ОС, каков предпочтительный способ перезапуска одного или нескольких контейнеров Docker? Например, у меня может быть несколько веб-серверов за обратным прокси-сервером или сервером базы данных.
6 ответов
Если вы запустите демон с docker -d -r
, Он перезапустит все контейнеры, которые были запущены до остановки демона.
Это станет поведением по умолчанию в следующем выпуске.
документации я видел это docker's Host Integration docs которые немного свет на деталях, etc.
в основном, он предлагает запустить демон с -r=false
и использование systemd (или выскочка, если вы используете что-то другое, кроме CoreOS).
для людей, которые хотят автоматически перезапустить контейнер docker, но не указали --restart
флаг (по умолчанию "нет") во время его запуска вы можете использовать docker обновление команда для добавления одного из следующих трех других параметров:
- on-failure
- если-остановил
- всегда
посмотреть этот пост за подробностями. У людей есть проблемы с always
флаг перезапуска включен, можно использовать либо on-failure
или .
использовать Restart
и RestartSec
чтобы заставить его работать:
# Restart after crash
Restart=on-failure
# Give the service 10 seconds to recover after the previous restart
RestartSec=10s
посмотреть документация.