Ο συνάδελφος αντέδρασε ότι το σύστημα δεν μπορούσε να συνδεθεί στο περιβάλλον δοκιμής, έλεγξε αποφασιστικά την παρακολούθηση και διαπίστωσε ότι η θύρα υπηρεσίας ήταν ανοιχτή και συνδέθηκε στον διακομιστή για να ελέγξει τη χρήση του σκληρού δίσκου και διαπίστωσε ότι ο κατάλογος που ήταν τοποθετημένος σε έναν συγκεκριμένο δίσκο ήταν γεμάτος, όπως φαίνεται στο παρακάτω σχήμα:
Ο δίσκος είναι 100% ο δίσκος που χρησιμοποιείται από την εφαρμογή docker και αρχικά υπάρχει η υποψία ότι η αδυναμία εγγραφής αρχείων καταγραφής εμποδίζει τη μονάδα να παρέχει υπηρεσίες στον έξω κόσμο.
Αναζητήστε μεγάλα αρχεία και τελικά εντοπίστε τα στον υποκατάλογο /var/lib/docker/containers/Ένα συγκεκριμένο αρχείο json.log καταλαμβάνει 30G。
Καθαρισμός αρχείων καταγραφής εμπορευματοκιβωτίων λειτουργίας (Θεραπεία συμπτωμάτων)
Για να επιτρέψετε στο δοχείο να εξυπηρετήσει κανονικά αμέσως. Προσωρινή λύση, καθαρίστε γρήγορα τέτοια αρχεία, ελευθερώστε χώρο στον σκληρό δίσκο, το σενάριο έχει ως εξής:
Εάν το κοντέινερ docker εκτελείται, τότε αφού διαγράψετε τα αρχεία καταγραφής χρησιμοποιώντας rm -rf, θα διαπιστώσετε ότι ο χώρος στο δίσκο δεν ελευθερώνεται μέσω df -h. Ο λόγος είναι ότι σε συστήματα Linux ή Unix, η διαγραφή ενός αρχείου μέσω rm -rf ή ενός διαχειριστή αρχείων θα το αποσυνδέσει από τη δομή καταλόγου του συστήματος αρχείων. Εάν το αρχείο ανοίξει (και υπάρχει μια διαδικασία σε χρήση), η διαδικασία θα εξακολουθεί να μπορεί να διαβάσει το αρχείο και ο χώρος στο δίσκο θα καταλαμβάνεται συνεχώς. Η σωστή στάση είναι cat /dev/null > *-json.log, και φυσικά μπορείτε επίσης να επανεκκινήσετε το docker αφού το αφαιρέσετε μέσω rm -rf.
Παρατήρηση:Δημιουργήστε ένα νέο σενάριο στον κατάλογο του ελεύθερου δίσκου, διαφορετικά το σενάριο δεν μπορεί να δημιουργηθεί κανονικά。
Ρύθμιση του μεγέθους αρχείου καταγραφής κοντέινερ Docker (βασική αιτία)
Ορίστε το μέγιστο μέγεθος αρχείου καταγραφής μιας υπηρεσίας περιέκτη και προσθέστε μια παράμετρο για να ορίσετε το μέγεθος καταγραφής του περιέκτη κατά την εκκίνηση του περιέκτη, για παράδειγμα:
max-size=500m, που σημαίνει ότι το ανώτατο όριο του μεγέθους καταγραφής ενός περιέκτη είναι 500M, max-file=3, που σημαίνει ότι ένα κοντέινερ έχει τρία αρχεία καταγραφής, δηλαδή id+.json, id+1.json και id+2.json.
Το Docker μετεγκαταστάθηκε σε νέο δίσκο
Τα δεδομένα που σχετίζονται με το docker υπάρχουν στο δίσκο συστήματος, ο δίσκος συστήματος έχει μέγεθος μόνο 50G και ο δίσκος δεδομένων έχει μέγεθος 100G, πώς να μετακινήσετε τα υπάρχοντα δεδομένα του docker στο δίσκο δεδομένων;
Για το docker που έχει εγκατασταθεί χρησιμοποιώντας τη μέθοδο yum του συστήματος CentOS, ο προεπιλεγμένος κατάλογος εγκατάστασης θα πρέπει να είναι: /var/lib/docker
Docker έκδοση < v17.05.0
Επειδή το dockerd μπορεί να καθορίσει τη διαδρομή αποθήκευσης εικόνας και κοντέινερ μέσω του γραφήματος παραμέτρων, όπως –graph=/var/lib/docker, χρειάζεται μόνο να τροποποιήσουμε το αρχείο διαμόρφωσης για να καθορίσουμε τις παραμέτρους εκκίνησης.
Το αρχείο διαμόρφωσης του Docker μπορεί να ορίσει τις περισσότερες από τις παραμέτρους της διαδικασίας παρασκηνίου και η θέση αποθήκευσης σε κάθε λειτουργικό σύστημα είναι ασυνεπής, στο Ubuntu: /etc/default/docker και στο CentOS: /etc/sysconfig/docker.
Έκδοση Docker >= v17.05.0
Επειδή το Docker κατάργησε επίσημα τη δυνατότητα γραφήματος σε αυτήν την έκδοση, εάν έχετε εγκατεστημένη την έκδοση Docker >= v17.05.0 στο μηχάνημά σας, δεν μπορείτε να τροποποιήσετε τον προεπιλεγμένο κατάλογο εγκατάστασης (αποθήκευσης) του Docker καθορίζοντας την παράμετρο γραφήματος στο αρχείο διαμόρφωσης /etc/default/docker.
Υπάρχουν άλλοι τρόποι με τους οποίους η νέα έκδοση του Docker μπορεί να επιτύχει τον στόχο μας για την τροποποίηση του καταλόγου εγκατάστασης (αποθήκευσης): τροποποιώντας (νέο) /etc/docker/daemon.json για να καθορίσετε την τιμή της παραμέτρου ρίζας δεδομένων.
Διαμόρφωση καταλόγου δαίμονα Docker:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Προετοιμασία μετεγκατάστασης: Διακοπή όλων των εφαρμογών κοντέινερ και διακοπή των υπηρεσιών docker (systemctl stop docker).
Δημιουργήστε έναν νέο κατάλογο στο /home/software με την ακόλουθη εντολή:
Μεταφέρετε τον κατάλογο /var/lib/docker στον κατάλογο /home/software/docker (συνιστάται να τον αντιγράψετε και, στη συνέχεια, να διαγράψετε το αρχείο καταλόγου /var/lib/docker όταν είναι εντάξει), η εντολή είναι η εξής:
Κατά την αντιγραφήΦροντίστε να προσθέσετε την παράμετρο -a, διαφορετικά ορισμένα κοντέινερ δεν θα λειτουργούν σωστά!!!!!
Δείτε όλες τις μαλακές συνδέσεις και τα σημεία αρχείων στον τρέχοντα κατάλογο με την ακόλουθη εντολή:
Τροποποιήστε το αρχείο /etc/docker/daemon.json με την ακόλουθη εντολή:
Αποθηκεύστε και, στη συνέχεια, ξεκινήστε την υπηρεσία docker με την ακόλουθη εντολή:
Ξεκινήστε το δοχείο, όλες οι δοκιμές εκτελούνται κανονικά και, τέλος,Διαγράψτε το φάκελο /var/lib/docker。
(Τέλος)
|