Πώς να διαγράψετε κοντέινερ Docker και να ελευθερώσετε πόρους
Τα κοντέινερ καταλαμβάνουν χώρο στο δίσκο και πόρους στο σύστημα υποδοχής σας. Καταργώντας τα κοντέινερ που δεν χρειάζεστε πλέον, μπορείτε να απελευθερώσετε πολύτιμο χώρο αποθήκευσης και να βελτιώσετε την απόδοση του συστήματός σας.
Πότε πρέπει να διαγράψετε τα κοντέινερ του Docker;
Τα κοντέινερ Docker είναι απομονωμένες, εκτελέσιμες μονάδες που περιέχουν εφαρμογές και τις εξαρτήσεις τους. Σε διάφορες περιπτώσεις, είναι σκόπιμο να καταργείτε κοντέινερ Docker, ώστε να διασφαλίσετε ότι το περιβάλλον Docker σας είναι όσο το δυνατόν πιο αποδοτικό, ασφαλές και εύκολο στη διαχείριση.
Πρώτα απ’ όλα, θα πρέπει να διαγράφετε τα containers μόλις εκπληρώσουν τον σκοπό τους. Μόλις ένα container ολοκληρώσει με επιτυχία τη συγκεκριμένη εργασία ή διαδικασία του, δεν έχει νόημα να το διατηρείτε στο περιβάλλον σας. Με αυτόν τον τρόπο αποτρέπετε τα ανενεργά containers από το να δεσμεύουν πόρους και να καταλαμβάνουν χώρο χωρίς λόγο.
Είναι επίσης καλή ιδέα να καταργείτε τα κοντέινερ που δεν χρησιμοποιούνται ενεργά ή δεν έχουν ενημερωθεί εδώ και πολύ καιρό. Αυτό είναι ιδιαίτερα σημαντικό για την ελαχιστοποίηση των κινδύνων ασφαλείας, καθώς τα παλαιότερα κοντέινερ ενδέχεται να περιέχουν ξεπερασμένες εκδόσεις λογισμικού ή να παρουσιάζουν κενά ασφαλείας.
Εάν έχετε ανησυχίες σχετικά με την ασφάλεια ενός κοντέινερ ή υποψιάζεστε ότι ενδέχεται να έχει παραβιαστεί, θα πρέπει να το καταργήσετε αμέσως. Το ίδιο ισχύει και για τα κοντέινερ που δεν μπορούν να ξεκινήσουν λόγω συγκρούσεων ή άλλων προβλημάτων.
Πώς να διαγράψετε ένα ή περισσότερα κοντέινερ Docker
Η κατάργηση ενός ή περισσότερων συγκεκριμένων κοντέινερ Docker είναι μια συνήθης διαδικασία όταν πρόκειται για την αφαίρεση περιττών ή ανενεργών κοντέινερ από τον κεντρικό υπολογιστή Docker.
Βήμα 1: Καταγράψτε τα αναγνωριστικά ή τα ονόματα των κοντέινερ
Πρώτα πρέπει να βρείτε τα αναγνωριστικά ή τα ονόματα των κοντέινερ που θέλετε να καταργήσετε. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να εμφανίσετε μια λίστα με όλα τα κοντέινερ που εκτελούνται και αυτά που έχουν σταματήσει:
docker ps -abashΒήμα 2: Αφαιρέστε το δοχείο
Μπορείτε απλά να εισαγάγετε τα αναγνωριστικά ή τα ονόματα των κοντέινερ, διαχωρισμένα με κενά, μετά την εντολή docker rm:
docker rm container_id_or_name1 container_id_or_name2bashΠώς να καταργήσετε ένα κοντέινερ Docker κατά την έξοδο
Για να καταργήσετε αυτόματα ένα κοντέινερ μετά την ολοκλήρωσή του, ορίστε την επιλογή --rm κατά την εκκίνηση του κοντέινερ με την εντολή docker run. Αυτή η επιλογή προκαλεί την αυτόματη κατάργηση του κοντέινερ αμέσως μόλις ολοκληρωθεί.
docker run --rm image_namebashΠώς να τερματίσετε όλα τα ενεργά κοντέινερ Docker
Είναι επίσης δυνατό να διαγραφούν ταυτόχρονα όλα τα κοντέινερ που έχουν τερματιστεί, φιλτράροντας τα κοντέινερ ανάλογα με την κατάστασή τους και διαγράφοντάς τα με την εντολή rm.
Βήμα 1: Εμφάνιση των τερματισμένων κοντέινερ
Με την επιλογή -f status=exited, μπορείτε να φιλτράρετε τη λίστα των κοντέινερ ώστε να εμφανίζονται μόνο τα κοντέινερ που έχουν τερματιστεί.
docker ps -a -f status=exitedbashΒήμα 2: Αφαίρεση των κοντέινερ που έχουν αποχωρήσει
Χρησιμοποιούμε τα αποτελέσματα του προηγούμενου βήματος για να λάβουμε τους αναγνωριστικούς κωδικούς των κοντέινερ που έχουν τερματιστεί και τους διαβιβάζουμε απευθείας στην εντολή docker rm.
docker rm $(docker ps -a -f status=exited -q)bashΠώς να διαγράψετε όλα τα κοντέινερ Docker που έχουν περισσότερα από ένα φίλτρα
Μπορείτε να απαλλαγείτε από τα κοντέινερ Docker που έχουν περισσότερα από ένα φίλτρα, αν χρησιμοποιήσετε την εντολή docker ps μαζί με τις επιλογές φίλτρου και στη συνέχεια μεταβιβάσετε το αποτέλεσμα στην εντολή docker rm.
Βήμα 1: Εμφάνιση των κοντέινερ με φίλτρα
Πρώτα, πληκτρολογούμε την εντολή docker ps με τις επιλογές φίλτρου για να λάβουμε μια λίστα με τα containers σύμφωνα με τα επιθυμητά κριτήρια. Η κατάσταση «created» είναι μια επιπλέον επιλογή, παράλληλα με την κατάσταση «exited». Τα containers με την κατάσταση «created» είναι containers που έχουν δημιουργηθεί αλλά δεν έχουν εκτελεστεί ακόμη.
docker ps -a -f status=exited -f status=createdbashΒήμα 2: Αφαίρεση του κοντέινερ Docker
Όπως και στο παραπάνω παράδειγμα, μεταβιβάζουμε το αποτέλεσμα στην τιμή docker rm.
docker rm $(docker ps -a -f status=exited -f status=created -q)bashΠώς να διαγράψετε κοντέινερ Docker σύμφωνα με ένα πρότυπο
Ο εντοπισμός όλων των κοντέινερ Docker που ανταποκρίνονται σε ένα συγκεκριμένο πρότυπο και η επακόλουθη διαγραφή τους με awk, xargs και docker rm αποτελεί έναν αποτελεσματικό τρόπο για την επιλεκτική διαγραφή κοντέινερ.
Βήμα 1: Καταγράψτε όλα τα δοχεία με ένα μοτίβο
Αν χρησιμοποιήσετε την εντολή docker ps -a σε συνδυασμό με grep, θα λάβετε όλα τα κοντέινερ με ονόματα ή ετικέτες που ταιριάζουν με ένα συγκεκριμένο πρότυπο. Για παράδειγμα, μπορείτε να εμφανίσετε όλα τα κοντέινερ με ονόματα που ξεκινούν με «test-»:
docker ps -a | grep "test-"bashΒήμα 2: Αφαίρεση κοντέινερ Docker
Η εντολή awk σάς επιτρέπει να επιλέξετε συγκεκριμένες στήλες από το αποτέλεσμα της εξόδου. Εδώ, θέλουμε να εξαγάγουμε την πρώτη στήλη που περιέχει τα αναγνωριστικά των κοντέινερ. Μπορούμε να χρησιμοποιήσουμε xargs για να μεταβιβάσουμε τα αναγνωριστικά στην εντολή docker rmi και να καταργήσουμε τα κοντέινερ Docker.
docker ps -a | grep "test-" | awk '{print $1}' | xargs docker rmibashΠώς να σταματήσετε και να διαγράψετε όλα τα κοντέινερ Docker
Μπορείτε να σταματήσετε και να καταργήσετε ταυτόχρονα όλα τα ενεργά και ανενεργά κοντέινερ στο σύστημά σας. Αυτό μπορεί να είναι χρήσιμο αν θέλετε να πραγματοποιήσετε έναν ενδελεχή καθαρισμό του περιβάλλοντος Docker σας.
Βήμα 1: Καταγράψτε όλα τα δοχεία
Πληκτρολογήστε την ακόλουθη εντολή για να ελέγξετε τη λίστα των κοντέινερ:
docker ps -abashΒήμα 2: Σταματήστε τα δοχεία
Όταν είστε έτοιμοι, προωθήστε την έξοδο στο docker stop. Αυτό θα σταματήσει όλα τα κοντέινερ.
docker stop $(docker ps -a -q)bashΒήμα 3: Κατάργηση των κοντέινερ Docker
Αφού σταματήσουν όλα τα containers, μπορείτε να τα καταργήσετε χρησιμοποιώντας την εντολή docker rm:
docker rm $(docker ps -a -q)bashΣε αντίθεση με τα κανονικά κοντέινερ Docker, οι τόμοι κοντέινερ Docker είναι μηχανισμοί που επιτρέπουν τη διατήρηση των δεδομένων και την ανταλλαγή τους μεταξύ των κοντέινερ και του συστήματος υποδοχής.
Στον Ψηφιακό Οδηγό μας, μπορείτε να βρείτε και άλλα μαθήματα για το Docker, όπως πώς να καταργήσετε έναν τόμο Docker και πώς να διαγράψετε μια εικόνα Docker.