Автоматический запуск Docker контейнера

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

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


Как установить или поменять политику перезапуска Docker контейнера

Будем использовать ключ restart с опциями:

  • no — Если не указаны три опции ниже, то установлена по умолчанию и не перезапускает контейнер
  • always — Всегда перезапускает контейнер, даже если его остановил пользователь
  • on-failure — Перезапускает контейнера если он перестает работать из-за ошибки, можно указать количество попыток дописав их число, например так — on-failure:5
  • unless-stopped — похож на опцию always, но при условии что он не остановлен пользователем

Все просто, если вы создаете новый контейнер, для примера возьмем nginx, то используем ключ —restart с нужной из 3 опций, например:

docker run —name nginx -p 80:80 —restart unless-stopped -d nginx

Если контейнер у вас уже создан то используем команду docker update с политикой перезапуска и названием существующего контейнера, например:

docker update —restart always nginx


Вывод

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