Прапорець --restart для контейнерів Docker використовується для визначення політики перезапуску контейнера. Два варіанти, --restart=un-stop, і --restart=завжди, мають деякі тонкі, але важливі відмінності:
--restart=завжди:
- Контейнер завжди намагатиметься перезапуститися, незалежно від того, як він зупинився.
- Якщо контейнер виходить з ладу, він автоматично перезапускається.
- Якщо демон Docker перезавантажиться, контейнер також запускається автоматично.
- Навіть якщо контейнер зупиняється вручну (наприклад, за допомогою команди docker stop), він перезавантажується, коли демон Docker перезапускається.
--restart=un-stopped:
- Контейнер автоматично перезавантажується при збої.
- Якщо демон Docker перезавантажиться, контейнер також запускається автоматично.
- Ключова різниця: якщо контейнер зупиняється вручну (наприклад, за допомогою команди docker stop), він не запускається автоматично, коли демон Docker перезапускається.
Підсумок основних відмінностей:
Політика завжди намагається перезапустити контейнер у всіх випадках, навіть після ручної зупинки. Якщо не зупинити стратегіюПоважайте рішення зупинитися вручну, який не перезапускає контейнер автоматично після ручної зупинки.
Рекомендації щодо відбору:
Якщо хочете, щоб контейнер працював постійно, що б не сталося, обирайте завжди. Якщо ви хочете мати можливість вручну зупинити контейнер і зберегти його зупинене, навіть після перезавантаження Docker, виберіть un-ceased. Цей вибір важливий для управління та підтримки контейнерів, особливо коли певні сервіси потрібно тимчасово зупинити або обслуговувати. Unless-Stop зазвичай вважається більш гнучким варіантом, оскільки дозволяє адміністраторам вручну контролювати стан контейнера за потреби.
|