Как реализовать автоматический перезапуск Docker контейнера?
Автоматический перезапуск контейнера настраивается политикой --restart при запуске или в манифесте Compose. Основные варианты: no, on-failure, unless-stopped и always. Обычно для сервисов используют always или unless-stopped, чтобы контейнер сам поднимался после сбоев или перезагрузки хоста.
Автоматический перезапуск Docker-контейнера настраивается через политику --restart. Она задаёт, в каких случаях Docker будет пытаться заново запустить контейнер.
Доступные политики перезапуска:
no (значение по умолчанию): контейнер не перезапускается автоматически, если остановился или аварийно завершился;on-failure[:N]: перезапуск только при аварийном завершении (ненулевой код выхода); опционально можно задать максимум попыток N;unless-stopped: контейнер перезапускается всегда, кроме случаев, когда его явно остановил пользователь (останется остановленным и после перезагрузки демона, если был остановлен вручную);always: контейнер всегда перезапускается при остановке, включая случаи ручной остановки после рестарта демона Docker или хоста.Политика off в актуальной документации не используется, вместо неё следует применять no.
При использовании Docker Compose политика перезапуска задаётся в файле docker-compose.yml в секции сервиса с помощью поля restart. Это удобный способ централизованно управлять поведением перезапуска для нескольких контейнеров.
Отметьте свой прогресс