Флагът --restart за Docker контейнерите се използва за дефиниране на политиката за рестартиране на контейнера. Двата варианта, --restart=освен ако не спря и --restart=винаги, имат някои фини, но важни разлики:
--restart=винаги:
- Контейнерът винаги ще се опитва да се рестартира, независимо как е спрял.
- Ако контейнерът се срине, автоматично се рестартира.
- Ако демонът на Docker се рестартира, контейнерът също ще стартира автоматично.
- Дори ако контейнерът бъде спрян ръчно (например с командата за спиране на docker), той ще се рестартира, когато демонът на Docker се рестартира.
--restart=освен ако не е спряно:
- Контейнерът автоматично се рестартира при срив.
- Ако демонът на Docker се рестартира, контейнерът също ще стартира автоматично.
- Ключова разлика: Ако контейнерът е спрян ръчно (например чрез командата docker stop), няма да стартира автоматично, когато демонът на Docker се рестартира.
Обобщение на основните разлики:
Политиката винаги се опитва да рестартира контейнера във всички случаи, включително след ръчно спиране. Освен ако не е спряна стратегияУважавайте решението да спирате ръчно, което не рестартира контейнера автоматично след ръчно спиране.
Препоръки за селекция:
Ако искате контейнерът да работи постоянно, независимо какво се случи, избирайте винаги. Ако искате да можете ръчно да спрете контейнера и да го държите спрян, дори след рестарт на Docker, изберете un-освен ако не е спрян. Този избор е важен за управлението и поддръжката на контейнери, особено когато определени услуги трябва временно да бъдат спрени или поддържани. Ununless Stop обикновено се счита за по-гъвкава опция, тъй като позволява на администраторите ръчно да контролират състоянието на контейнера при нужда.
|