Флаг --restart для контейнеров Docker используется для определения политики перезапуска контейнера. Два варианта, --restart=un-stop, и --restart=всегда, имеют некоторые тонкие, но важные различия:
--restart=всегда:
- Контейнер всегда будет пытаться перезагрузиться, независимо от того, как он остановился.
- Если контейнер выходит из строя, он автоматически перезагружается.
- Если демон Docker перезапущен, контейнер тоже начнётся автоматически.
- Даже если контейнер останавливается вручную (например, при использовании команды docker stop), он перезагружается при перезапуске демона Docker.
--restart=если-остановлено:
- Контейнер автоматически перезагружается при вылете.
- Если демон Docker перезапущен, контейнер тоже начнётся автоматически.
- Ключевое отличие: если контейнер останавливается вручную (например, с помощью команды docker stop), он не запускается автоматически при перезапуске демона Docker.
Краткое изложение основных отличий:
Политика всегда пытается перезапустить контейнер во всех случаях, включая ручную остановку. Если не остановить стратегиюУважайте решение остановиться вручную, который не перезагружает контейнер автоматически после ручной остановки.
Рекомендации по отбору:
Если вы хотите, чтобы контейнер работал постоянно, что бы ни случилось, выбирайте всегда. Если хотите иметь возможность вручную остановить контейнер и сохранить его остановленным, даже после перезапуска Docker, выберите un-stoped. Этот выбор важен для управления и обслуживания контейнеров, особенно когда определённые сервисы необходимо временно остановить или поддерживать. Unless-Stop обычно считается более гибким вариантом, так как позволяет администраторам вручную контролировать состояние контейнера при необходимости.
|