Η σημαία --restart για κοντέινερ Docker χρησιμοποιείται για τον καθορισμό της πολιτικής επανεκκίνησης του κοντέινερ. Οι δύο επιλογές, --restart=unless-stop και --restart=πάντα, έχουν μερικές λεπτές αλλά σημαντικές διαφορές:
--restart=πάντα:
- Το κοντέινερ θα προσπαθεί πάντα να επανεκκινήσει, ανεξάρτητα από το πώς σταμάτησε.
- Εάν το κοντέινερ καταρρεύσει, επανεκκινείται αυτόματα.
- Εάν γίνει επανεκκίνηση του δαίμονα Docker, το κοντέινερ θα ξεκινήσει επίσης αυτόματα.
- Ακόμα κι αν το κοντέινερ σταματήσει χειροκίνητα (όπως στη χρήση της εντολής docker stop), θα επανεκκινηθεί όταν γίνει επανεκκίνηση του δαίμονα Docker.
--restart=unless-stopped:
- Το κοντέινερ επανεκκινείται αυτόματα όταν κολλάει.
- Εάν γίνει επανεκκίνηση του δαίμονα Docker, το κοντέινερ θα ξεκινήσει επίσης αυτόματα.
- Βασική διαφορά: Εάν ένα κοντέινερ σταματήσει χειροκίνητα (π.χ. χρησιμοποιώντας την εντολή docker stop), δεν θα ξεκινήσει αυτόματα κατά την επανεκκίνηση του δαίμονα Docker.
Σύνοψη των κύριων διαφορών:
Η πολιτική πάντα επιχειρεί να επανεκκινήσει το κοντέινερ σε όλες τις περιπτώσεις, ακόμη και μετά από μη αυτόματη διακοπή. Στρατηγική εκτός αν σταματήσειΣεβαστείτε την απόφαση να σταματήσετε χειροκίνητα, το οποίο δεν επανεκκινεί αυτόματα το κοντέινερ μετά από χειροκίνητη διακοπή.
Προτάσεις επιλογής:
Εάν θέλετε το κοντέινερ να λειτουργεί συνεχώς, ό,τι κι αν συμβεί, επιλέξτε πάντα. Εάν θέλετε να μπορείτε να σταματήσετε χειροκίνητα το κοντέινερ και να το διατηρήσετε σταματημένο, ακόμα και μετά από επανεκκίνηση του Docker, επιλέξτε unless-stopped. Αυτή η επιλογή είναι σημαντική για τη διαχείριση και τη συντήρηση κοντέινερ, ειδικά όταν ορισμένες υπηρεσίες πρέπει να διακοπούν ή να συντηρηθούν προσωρινά. Το Unless-stop θεωρείται γενικά μια πιο ευέλικτη επιλογή, καθώς επιτρέπει στους διαχειριστές να ελέγχουν χειροκίνητα την κατάσταση του κοντέινερ όταν χρειάζεται.
|