Docker, лекция 12. Политики перезапуска

Docker, лекция 12. Политики перезапуска

Как и любой процесс, контейнеры могут зависать. В этой лекции узнаем как сохранить контейнеры в рабочем состоянии, и автоматически перезапустить их в случае неожиданного сбоя.

Stop On Fail

Docker считает любые контейнеры в exit кодом не равным 0 как crashed. По-умолчанию crashed контейнеры остаются остановленными. Для перезапуска используется:

docker run -d --name restart-default

Не забываем для диагностики смотреть ps и логи:

docker ps -a
docker logs restart-default

Restart On Fail

В зависимости от вашего сценария перезапуск сбойного процесса может исправить проблему. Docker может автоматически повторить попытку запуска контейнера определенное количество раз, прежде чем он прекратит попытки.

Опция —restart=on-failure:# позволяет указать, сколько раз Docker должен повторить попытку. В приведенном ниже примере Docker перезапустит контейнер три раза перед остановкой:

docker run -d --name restart-3 --restart=on-failure:3 scrapbook/docker-restart-example

Always Restart

Наконец, Docker всегда может перезапустить сбойный контейнер, в этом случае Docker будет продолжать попытки, пока контейнер явно не получит команду остановиться.

docker run -d --name restart-always --restart=always scrapbook/docker-restart-example

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *