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