Docker·57 вопросов

Как настроить автоматический перезапуск контейнеров с помощью πολιтик рестарта (Restart Policies)?

Ответ

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

Политика задается при создании или запуске контейнера с помощью специального флага. Доступно несколько вариантов поведения системы в зависимости от ваших задач. Например, можно настроить перезапуск только в случае непредвиденного сбоя с ненулевым кодом выхода.

Основные типы политик рестарта включают следующие варианты:

no — автоматический перезапуск отключен по умолчанию для всех новых контейнеров.
always — демон будет всегда перезапускать контейнер независимо от кода завершения, включая ручную остановку.
unless-stopped — аналогично always, но контейнер не перезапускается, если он был явно остановлен пользователем перед перезагрузкой демона.
on-failure — перезапуск происходит только тогда, когда приложение завершается с ошибкой, возвращая ненулевой код статуса.

Для политики on-failure можно дополнительно ограничить количество попыток повторного запуска. Это полезно, чтобы бесконечно не нагружать систему неработающим приложением. Ограничение задается через двоеточие после названия политики вместе с числом попыток.

Грамотная настройка политик рестарта является базовым требованием для обеспечения высокой доступности приложений. Она избавляет разработчиков и системных администраторов от необходимости постоянно мониторить состояние контейнеров вручную.

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем