Программы
Как настроить Docker, чтобы он переподнимался при ошибках и перезапуске хоста

Как настроить Docker, чтобы он переподнимался при ошибках и перезапуске хоста

Настройка политики перезапуска Docker контейнеров

Для начала стоит добавить параметр --restart=always к команде запуска Docker:

    docker run --restart=always -d {{ name }}

Политика перезапуска Docker-контейнера устанавливается параметром --restart – именно он указывает как поступать с контейнером, который завершил свою работу / упал с ошибкой / при старте системы. Возможные варианты:

  • no – не перезапускать docker-контейнер;
  • on-failure – рестартануть контейнер, в случае если entry point процесс завершился с ненулевым кодом;
  • always – перезапускать всегда, вне зависимости от того, что случилось с docker-контейнером.

Также можно установить максимальное количество попыток перезапустить контейнер при использовании политики перезапуска on-failure. По умолчанию Docker будет постоянно пытаться перезапустить.

    docker run --restart=always {{ name }}

А здесь Docker попытается только 10 раз:

    docker run --restart=on-failure:10 {{ name }}

Если контейнер поднимется хотя бы и завершится с нулевым кодом возврата, то счётчик начнётся с начала. Работает это только с политикой on-failure.