Docker είναι ένα από τα πιο δημοφιλή προϊόντα σε οργανισμούς στις μέρες μας. Καθιστά τη διαδικασία διαχείρισης εφαρμογών σε containers πολύ εύκολη. Το Docker παρέχει φορητότητα, απόδοση, ευελιξία, επεκτασιμότητα και απομόνωση στις εφαρμογές, καθώς χρησιμοποιεί containers. Τα containers είναι πιο φορητά και απαιτούν λιγότερους πόρους από τις εικονικές μηχανές. Καθώς εργάζεστε με το Docker, τείνετε να συσσωρεύετε υπερβολικό αριθμό μη χρησιμοποιούμενων images, volumes και containers. Αυτοί οι πόροι θα γεμίσουν το output και θα καταναλώσουν πολύ χώρο στο δίσκο. Σε αυτόν τον οδηγό, θα μάθετε πώς να καθαρίζετε τους πόρους του Docker και να οργανώνετε τον διακομιστή σας.
Εκκαθάριση όλων
Μπορείτε να καθαρίσετε όλους τους πόρους του Docker, συμπεριλαμβανομένων των images, των σταματημένων containers, των volumes και των δικτύων με μία μόνο εντολή. Μπορείτε να επιλέξετε μία από τις παρακάτω επιλογές:
Αναφορά: Οι dangling πόροι είναι αυτοί που δεν σχετίζονται με κανένα εκτελούμενο container.
Επιλογή 1:
|
1 |
docker system prune |
– όλα τα σταματημένα containers
– όλα τα δίκτυα που δεν χρησιμοποιούνται από τουλάχιστον ένα container
– όλα τα dangling images
– όλη τη dangling build cache
Επιλογή 2:
|
1 |
docker system prune -a |
– όλα τα σταματημένα containers
– όλα τα δίκτυα που δεν χρησιμοποιούνται από τουλάχιστον ένα container
– όλα τα images που δεν σχετίζονται με τουλάχιστον ένα container
– όλη τη build cache
Επιλογή 3:
|
1 |
docker system prune -a --volumes |
– όλα τα σταματημένα containers
– όλα τα δίκτυα που δεν χρησιμοποιούνται από τουλάχιστον ένα container
– όλα τα volumes που δεν χρησιμοποιούνται από τουλάχιστον ένα container
– όλα τα images που δεν σχετίζονται με τουλάχιστον ένα container
– όλη τη build cache

Κατάργηση Docker Images
Για να καταργήσετε ένα συγκεκριμένο image, πρέπει να γνωρίζετε το image ID του. Μπορείτε να βρείτε το image ID ενός Docker container χρησιμοποιώντας την εντολή “docker images”, όπως εξηγείται στον οδηγό μας για πώς να εγκαταστήσετε & να λειτουργήσετε το Docker στο Ubuntu.
Λίστα images:
|
1 |
docker images |
Κατάργηση image:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
docker rmi <Image ID> Παράδειγμα: docker rmi 1d622ef86b13 Έξοδος: Untagged: ubuntu:latest Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7 Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01 Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3 Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47 Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387 Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f |
Κατάργηση Dangling Images:
Όταν δημιουργείτε ένα Docker image, αυτό γενικά αποτελείται από διάφορα επίπεδα εικόνων. Τα dangling images είναι τα επίπεδα που δεν σχετίζονται με κανένα tagged image. Τα dangling images καταναλώνουν χώρο στο δίσκο αλλά δεν εξυπηρετούν κανέναν σκοπό. Μπορούν να εμφανιστούν σε λίστα χρησιμοποιώντας την εντολή:
|
1 |
docker images -f dangling=true |
Μπορείτε να καταργήσετε αυτά τα images εκτελώντας την ακόλουθη εντολή:
|
1 |
docker image prune |
Κατάργηση images με βάση μοτίβο
Μπορείτε εύκολα να βρείτε images με βάση ένα συγκεκριμένο μοτίβο χρησιμοποιώντας την εντολή “grep” και στη συνέχεια να τα καταργήσετε περνώντας τα στην εντολή “docker rmi” χρησιμοποιώντας το “awk”. Μπορείτε να χρησιμοποιήσετε τις ακόλουθες εντολές και να αντικαταστήσετε το “pattern” σε καθεμία από αυτές:
Λίστα:
|
1 |
docker images -a | grep "pattern" |
Κατάργηση:
|
1 |
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi |
Κατάργηση όλων των εικόνων
Μπορείτε να δείτε τη λίστα με όλες τις εικόνες docker χρησιμοποιώντας την εντολή:
|
1 |
docker images -a |
Μόλις αποφασίσετε να τις καταργήσετε όλες, μπορείτε να χρησιμοποιήσετε αυτήν την εντολή για να τις διαγράψετε όλες:
|
1 |
docker images -a -q | xargs docker rmi |
Κατάργηση κοντέινερ:
Τώρα που εκκαθαρίσατε όλες τις περιττές εικόνες, ήρθε η ώρα να διαγράψετε μερικά από τα κοντέινερ που δεν απαιτούνται.
Για να δείτε τη λίστα των κοντέινερ, μπορείτε να χρησιμοποιήσετε την εντολή:
|
1 |
docker ps -a |
Για να καταργήσετε τα κοντέινερ, χρησιμοποιήστε την εντολή:
|
1 |
docker rm <<Κοντέινερ Όνομα/Κοντέινερ ID>> |
Προσωρινή εκτέλεση κοντέινερ
Αν θέλετε να εκτελέσετε το κοντέινερ μόνο μία φορά, μπορείτε να επιλέξετε να διαγραφεί αυτόματα μόλις τερματιστεί. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας την εντολή:
|
1 |
docker run --rm <<ΌνομαΕικόνας>> |
Κατάργηση τερματισμένων κοντέινερ
Μπορείτε να φιλτράρετε τα τερματισμένα κοντέινερ χρησιμοποιώντας το όρισμα “-f”. Δείτε τη λίστα των τερματισμένων κοντέινερ χρησιμοποιώντας την εντολή:
|
1 |
docker ps -a -f status=exited |
Τώρα που τα φιλτράρατε, καταργήστε τα χρησιμοποιώντας αυτήν την εντολή:
|
1 |
docker rm $(docker ps -a -f status=exited -q) |
Κατάργηση κοντέινερ βάσει μοτίβου
Μπορείτε εύκολα να βρείτε κοντέινερ βάσει ενός συγκεκριμένου μοτίβου χρησιμοποιώντας την εντολή “grep” και στη συνέχεια να τα καταργήσετε περνώντας τα στην εντολή “docker rm” χρησιμοποιώντας την “awk”. Μπορείτε να χρησιμοποιήσετε τις ακόλουθες εντολές και να αντικαταστήσετε το “pattern” σε καθεμία από αυτές.
Λίστα:
|
1 |
docker ps -a | grep "pattern" |
Κατάργηση:
|
1 |
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm |
Διακοπή και κατάργηση όλων των κοντέινερ
Πριν το κάνετε αυτό, ελέγξτε όλα τα κοντέινερ στον διακομιστή σας εμφανίζοντάς τα σε λίστα. Μόνο αφού βεβαιωθείτε ότι θέλετε να τα διαγράψετε, εκτελέστε τις ακόλουθες εντολές:
Εμφάνιση της λίστας των κοντέινερ προς έλεγχο:
|
1 |
docker ps -a |
Διακοπή και κατάργηση:
|
1 2 |
docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) |
Κατάργηση τόμων
Κατάργηση συγκεκριμένου τόμου
Για να καταργήσετε έναν συγκεκριμένο τόμο, πρέπει να γνωρίζετε το όνομα του τόμου. Για να το βρείτε αυτό, μπορείτε να δείτε τη λίστα των τόμων.
Λίστα:
|
1 |
docker volume ls |
Κατάργηση:
|
1 |
docker volume rm <<ΌνομαΤόμου>> |
Κατάργηση ορφανών τόμων
Όταν καταργείτε ένα κοντέινερ, ο τόμος που είναι συνδεδεμένος σε αυτό δεν καταργείται αυτόματα. Ένας τέτοιος τόμος ονομάζεται ορφανός τόμος (dangling volume). Για να εντοπίσετε τέτοιους τόμους, χρησιμοποιήστε το όρισμα φίλτρου στην εντολή:
|
1 |
docker volume ls -f dangling=true |
Για να καταργήσετε όλους αυτούς τους ορφανούς τόμους, χρησιμοποιήστε την εντολή:
|
1 |
docker volume prune |
Κατάργηση ενός κοντέινερ και του ανώνυμου τόμου του
Αν δημιουργήσατε έναν ανώνυμο ή μη κατονομαζόμενο τόμο κατά την εκτέλεση του κοντέινερ, μπορείτε να τον καταργήσετε μαζί με το κοντέινερ χρησιμοποιώντας μία μόνο εντολή. Ωστόσο, αν ο τόμος είναι κατονομαζόμενος, τότε θα διαγραφεί μόνο το κοντέινερ.
|
1 |
docker rm -v <<ΌνομαΚοντέινερ>> |
Τώρα που έχετε αυτόν τον οδηγό γρήγορης αναφοράς (cheat sheet), θα πρέπει να είστε έτοιμοι να εκκαθαρίσετε τους πόρους Docker που δεν απαιτούνται στον διακομιστή σας.
Καλή συνέχεια!


Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.