Φόντο
Ο τόμος Docker μας επιτρέπει να προσαρτήσουμε δυναμικά ορισμένα αρχεία (όπως αρχεία διαμόρφωσης) για να αντικαταστήσουμε τα αρχικά αρχεία στην εικόνα κατά την εκκίνηση ενός κοντέινερ docker, αλλά τι συμβαίνει εάν προσαρτήσουμε έναν φάκελο ή ένα αρχείο που δεν υπάρχει ακόμη στον κεντρικό υπολογιστή στο κοντέινερ; Ο LZ αντιμετώπισε ένα τέτοιο πρόβλημα στη δουλειά του, οπότε το εξάσκησε ο ίδιος και κατέγραψε τα πειραματικά αποτελέσματα ως εξής:
Προσάρτηση φακέλου
Η συμπεριφορά του Docker στην τοποθέτηση φακέλων είναι ομοιόμορφη, ως εξής:
- Εάν ο φάκελος δεν υπάρχει, δημιουργείται πρώτα ο φάκελος (ή αναδρομικά εάν πρόκειται για φάκελο πολλαπλών επιπέδων)
- Αντικαταστήστε τα περιεχόμενα του φακέλου στο κοντέινερ με τα περιεχόμενα του φακέλου στο κεντρικό σύστημα
Οι λεπτομέρειες έχουν ως εξής:
Ο φάκελος στο κεντρικό σύστημα υπάρχει και δεν είναι κενός
κεντρικός υπολογιστής | δοχείο | Αποτέλεσμα τοποθέτησης | | Υπάρχει μη κενός φάκελος Α | Φάκελος Β που δεν υπάρχει | Δημιουργήστε πρώτα το φάκελο Β στο contanier και, στη συνέχεια, αντιγράψτε όλα τα αρχεία του φακέλου Α στο B | | Υπάρχει μη κενός φάκελος Α | Υπάρχει μη κενός φάκελος Β | Αρχικά, αδειάστε τα αρχικά περιεχόμενα του περιέκτη Κινεζικός φάκελος Β και, στη συνέχεια, αντιγράψτε το κινεζικό αντίγραφο Α στο Β |
Ανεξάρτητα από το αν υπάρχει ο φάκελος Β στο κοντέινερ, ο Α θα αντικαταστήσει πλήρως τα περιεχόμενα του Β
Ο φάκελος στο κεντρικό σύστημα υπάρχει, αλλά είναι κενός
κεντρικός υπολογιστής | δοχείο | Αποτέλεσμα τοποθέτησης | | Κενός φάκελος Α που υπάρχει | Υπάρχει μη κενός φάκελος Β | Τα περιεχόμενα του κοντέινερ κινέζικου φακέλου Β αδειάζουν |
Τα περιεχόμενα του αντίστοιχου φακέλου στο κοντέινερ αδειάζουν
Ο φάκελος κεντρικού υπολογιστή δεν υπάρχει
κεντρικός υπολογιστής | δοχείο | Αποτέλεσμα τοποθέτησης | | Φάκελος Α που δεν υπάρχει | Υπάρχει μη κενός φάκελος Β | Δημιουργήστε το φάκελο Α στον κεντρικό υπολογιστή και αδειάστε τα περιεχόμενα του κινεζικού φακέλου Β του κοντέινερ | | Φάκελοι A/B/C που δεν υπάρχουν | Υπάρχει μη κενός φάκελος Β | Δημιουργήστε τους φακέλους A/B/C στον κεντρικό υπολογιστή και αδειάστε τα περιεχόμενα του κινεζικού φακέλου B του κοντέινερ |
Τα περιεχόμενα του αντίστοιχου φακέλου στο κοντέινερ αδειάζουν
περίληψη
Ο φάκελος κεντρικού υπολογιστή θα αντικαταστήσει σίγουρα τον κινεζικό φάκελο κοντέινερ:
κεντρικός υπολογιστής | δοχείο | Αποτέλεσμα τοποθέτησης | | Ο φάκελος δεν υπάρχει/ο φάκελος υπάρχει αλλά είναι κενός | Ο φάκελος δεν υπάρχει/υπάρχει αλλά είναι κενός/υπάρχει και δεν είναι άδειος | δοχείο Το κινέζικο κομμάτι καλύπτεται (αδειάζει) | | Ο φάκελος υπάρχει και δεν είναι κενός | Ο φάκελος δεν υπάρχει/υπάρχει αλλά είναι κενός/υπάρχει και δεν είναι άδειος | Τα περιεχόμενα του φακέλου στα Κινεζικά του περιέκτη αντικαθίστανται (το αρχικό περιεχόμενο αδειάζει και τα περιεχόμενα του φακέλου στο κεντρικό σύστημα αντικαθίστανται) |
Προσάρτηση αρχείου
Η μεγαλύτερη διαφορά μεταξύ της προσάρτησης αρχείων και της προσάρτησης φακέλων είναι:
- Το docker απαγορεύει την προσάρτηση αρχείων που δεν υπάρχουν στο κεντρικό σύστημα σε αρχεία που υπάρχουν ήδη στο κοντέινερ
- Η προσάρτηση αρχείων δεν έχει καμία επίδραση σε άλλα αρχεία στον ίδιο φάκελο
Επιπλέον, η συμπεριφορά αντικατάστασής του είναι συνεπής με την τοποθέτηση φακέλου, δηλαδή:
- Αντικαταστήστε τα περιεχόμενα του αρχείου στον περιέκτη με τα περιεχόμενα του αρχείου στο κεντρικό σύστημα
Οι λεπτομέρειες έχουν ως εξής:
κεντρικός υπολογιστής
κεντρικός υπολογιστής | δοχείο | Αποτέλεσμα τοποθέτησης | | Αρχεία που δεν υπάρχουν configA.js | Έγγραφα που υπάρχουν ήδη congfigB.js | Σφάλμα, Προσπαθείτε να προσαρτήσετε έναν κατάλογο σε ένα αρχείο (ή το αντίστροφο); Ελέγξτε εάν η καθορισμένη διαδρομή κεντρικού συστήματος υπάρχει και είναι ο αναμενόμενος τύπος. Δημιουργεί δύο κενούς καταλόγους configA.js και configB.js ταυτόχρονα στον κεντρικό υπολογιστή, αλλά το κοντέινερ δεν μπορεί να ξεκινήσει |
κεντρικός υπολογιστής
κεντρικός υπολογιστής | δοχείο | Αποτέλεσμα τοποθέτησης | | Παρόν αρχείο configA.js | Παρόν αρχείο congfigB.js | κοντέινερ Το κινεζικό στοιχείο configB.js παραμείνει το ίδιο, αλλά τα περιεχόμενα του αρχείου αντικαθίστανται από τα congfigA.js περιεχόμενα | | Παρόν αρχείο configA.js | Αρχεία που δεν υπάρχουν congfigB.js | Ένα νέο αρχείο configB.js στο κοντέινερ με τα περιεχόμενα του αρχείου configA.js παραμένει αμετάβλητο configB.js όλα τα άλλα αρχεία κάτω από το αρχείο |
περίληψη
Το αρχείο στο κεντρικό σύστημα θα αντικαθιστά πάντα τον φάκελο Κινεζικών του κοντέινερ
κεντρικός υπολογιστής | δοχείο | Αποτέλεσμα τοποθέτησης | | Αρχεία που δεν υπάρχουν | Έγγραφα που υπάρχουν ήδη | Απαγορευμένες πράξεις | | Έγγραφα που υπάρχουν | Αρχεία που δεν υπάρχουν / αρχεία που υπάρχουν ήδη | Προσθήκη/αντικατάσταση (δημιουργεί έναν κατάλογο εάν δεν υπάρχει) |
συμπέρασμα
Προσάρτηση φακέλου
- Εάν επιτρέψετε την προσάρτηση ανύπαρκτων φακέλων ή κενών φακέλων στο κοντέινερ, οι αντίστοιχοι φάκελοι στο κοντέινερ θα αδειάσουν
- Η επισύναψη ενός μη κενού φακέλου σε ένα κοντέινερ θα αντικαταστήσει τον αρχικό φάκελο στο κοντέινερ
Προσάρτηση αρχείου
- Απαγορεύεται η προσάρτηση ανύπαρκτων αρχείων σε αρχεία που υπάρχουν ήδη στο κοντέινερ
- Τα υπάρχοντα αρχεία θα αντικατασταθούν όταν επισυναφθούν στο κοντέινερ και εάν τα αρχεία δεν υπάρχουν, θα δημιουργηθούν
Σενάρια εφαρμογής
- Από την παραπάνω ανάλυση, μπορεί να φανεί ότι η τοποθέτηση φακέλων χρησιμοποιείται για την αντικατάσταση αρχείων σε ολόκληρο τον φάκελο, επομένως μπορεί να χρησιμοποιηθεί όταν πρέπει να προσαρτηθεί μεγάλος αριθμός αρχείων στο κοντέινερ, επιπλέον, εάν έχει τοποθετηθεί ένας κενός φάκελος ή ένας ανύπαρκτος φάκελος, χρησιμοποιείται γενικά αντίστροφα: δηλαδή, μετά την εκκίνηση του κοντέινερ, ορισμένα αρχεία (όπως αρχεία καταγραφής) μπορούν να δημιουργηθούν κάτω από το φάκελο του σημείου στερέωσης στο κοντέινερ και αυτή τη στιγμή, μπορεί να προβληθεί απευθείας στο φάκελο στον αντίστοιχο κεντρικό υπολογιστή.
- Η προσάρτηση αρχείων χρησιμοποιείται συχνά για την προσάρτηση αρχείων διαμόρφωσης για τη δυναμική τροποποίηση της προεπιλεγμένης διαμόρφωσης κατά το χρόνο εκτέλεσης, επειδή αντικαθιστά μόνο ένα αρχείο χωρίς να επηρεάζει άλλα αρχεία στον ίδιο φάκελο στο κοντέινερ.
Μεταφέρθηκε από:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
(Τέλος) |