×

Для начала стоит добавить параметр --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.

Комментарии

Фото
98 дней назад 1337 900913

Замечу, что при рестартах, если были интересные настройки сети, они могут не подхватиться. А при следующем – уже нормально работать. Уже давняя болячка, но может починят когда-нибудь.

Фото Два джунá писали АПИ
Предыдущая запись:
Два джунá писали АПИ
Фото Полезные, но неочевидные команды PostgreSQL
Следующая запись:
Полезные, но неочевидные команды PostgreSQL