Подтвердить что ты не робот

Как автоматически перезапустить контейнер Docker после перезагрузки в CoreOS?

Предполагая, что демон Docker автоматически перезагружается любым процессом init.d или systemd, когда ОС перезагружается, что является предпочтительным способом перезапуска одного или нескольких контейнеров Docker? Например, у меня может быть несколько веб-серверов за обратным прокси-сервером или сервером базы данных.

4b9b3361

Ответ 2

если вы запустите демон с помощью docker -d -r, он перезапустит все контейнеры, которые были запущены до того, как демон остановился. Это станет поведением по умолчанию в следующей версии.

Ответ 3

Что сработало для меня - добавить --restart='always' в команду container {run -d...}

Ответ 4

Для людей, которые хотят автоматически перезапустить контейнер докеров, но не указали флаг --restart (по умолчанию "нет" ) во время его запуска, вы можете использовать docker update, чтобы добавить одну из следующих трех других опций:

  • на провал
  • если-не остановлен
  • всегда

Подробнее см. этот пост. У людей проблемы с always флажком перезапуска, можно рассмотреть возможность использования опции on-failure или unless-stopped.

Ответ 5

Единственная документация, которую я видел, - это Документы по интеграции хоста Docker, которые немного освещают детали и т.д.

По сути, он предлагает запустить демон с -r=false и использовать systemd (или использовать upstart, если вы используете что-то отличное от CoreOS).

Ответ 6

Используется Restart и RestartSec, чтобы заставить его работать:

# Restart after crash
Restart=on-failure
# Give the service 10 seconds to recover after the previous restart
RestartSec=10s

Просмотрите документацию.