Fonas
"Docker Volume" leidžia dinamiškai prijungti kai kuriuos failus (pvz., Konfigūracijos failus), kad paleidžiant "Docker" konteinerį perrašytume originalius vaizdo failus, bet kas atsitiks, jei prie konteinerio prijungsime aplanką ar failą, kurio dar nėra pagrindiniame kompiuteryje? LZ susidūrė su tokia problema savo darbe, todėl pats ją praktikavo ir eksperimento rezultatus užfiksavo taip:
Aplanko laikiklis
"Docker" elgesys montuojant aplanką yra vienodas, taip:
- Jei aplanko nėra, pirmiausia sukuriamas aplankas (arba rekursyviai, jei tai kelių lygių aplankas)
- Perrašyti konteinerio aplanko turinį pagrindinio kompiuterio aplanko turiniu
Išsami informacija yra tokia:
Pagrindinio kompiuterio aplankas yra ir nėra tuščias
Priimančiosios | konteineris | montavimo rezultatas | | Yra netuščias aplankas A | Aplankas B, kurio nėra | Pirmiausia sukurkite aplanką B contanier, o tada nukopijuokite visus failus aplanke A į B | | Yra netuščias aplankas A | Yra netuščias aplankas B | Pirmiausia ištuštinkite pradinį konteinerio kinų aplanko B turinį, tada nukopijuokite kinų kalbos kopiją į B |
Nepriklausomai nuo to, ar konteineryje yra aplanko B, A visiškai perrašys B turinį
Pagrindinio kompiuterio aplankas yra, bet tuščias
Priimančiosios | konteineris | montavimo rezultatas | | Tuščias aplankas A | Yra netuščias aplankas B | Konteinerio kinų aplanko B turinys ištuštinamas |
Atitinkamo konteinerio aplanko turinys ištuštinamas
Pagrindinio kompiuterio aplanko nėra
Priimančiosios | konteineris | montavimo rezultatas | | Aplankas A, kurio nėra | Yra netuščias aplankas B | Pagrindinio kompiuterio aplanko A kūrimas ir konteinerio kinų aplanko B turinys ištuštinamas | | Neegzistuojantys A/B/C aplankai | Yra netuščias aplankas B | Sukurkite aplankus A/B/C pagrindiniame kompiuteryje, o konteinerio kinų aplanko B turinys ištuštinamas |
Atitinkamo konteinerio aplanko turinys ištuštinamas
suvestinė
Pagrindinis aplankas tikrai perrašys konteinerio kinų aplanką:
Priimančiosios | konteineris | montavimo rezultatas | | Aplanko nėra/aplanko yra, bet jis tuščias | Aplanko nėra/yra, bet jis tuščias/yra ir nėra tuščias | konteineris Kinijos gabalas yra uždengtas (ištuštintas) | | Aplankas yra ir nėra tuščias | Aplanko nėra/yra, bet jis tuščias/yra ir nėra tuščias | konteinerio kinų aplanko turinys perrašomas (pradinis turinys ištuštinamas, o pagrindinio kompiuterio aplanko turinys perrašomas) |
Failo prijungimas
Didžiausias skirtumas tarp failų ir aplankų montavimo yra:
- "Docker" draudžia prijungti failus, kurių nėra pagrindiniame kompiuteryje, prie failų, kurie jau yra konteineryje
- Failų prijungimas neturi jokios įtakos kitiems failams, esantiems tame pačiame aplanke
Be to, jo perrašymo elgesys atitinka aplanko prijungimą, t. y.:
- Perrašykite konteinerio failo turinį pagrindinio kompiuterio failo turiniu
Išsami informacija yra tokia:
Priimančiosios
Priimančiosios | konteineris | montavimo rezultatas | | Failai, kurių nėra configA.js | Jau egzistuojantys dokumentai congfigB.js | Klaida, ar bandote prijungti katalogą prie failo (arba atvirkščiai)? Patikrinkite, ar nurodytas pagrindinio kompiuterio kelias yra ir ar jo tipas yra numatytas. Jis sukuria du tuščius katalogus configA.js ir configB.js pagrindiniame kompiuteryje vienu metu, tačiau konteineris negali paleisti |
Priimančiosios
Priimančiosios | konteineris | montavimo rezultatas | | Pateikti failo configA.js | Pateikti failo congfigB.js | konteineris kinų elementas configB.js išlikti tas pats, tačiau failo turinį perrašo congfigA.js turinys | | Pateikti failo configA.js | Failai, kurių nėra congfigB.js | Konteineryje configB.js naujas failas su configA.js failo turiniu lieka nepakitęs configB.js visi kiti failai |
suvestinė
Pagrindinio kompiuterio failas visada perrašys konteinerio kinų aplanką
Priimančiosios | konteineris | montavimo rezultatas | | Failai, kurių nėra | Jau egzistuojantys dokumentai | Draudžiami veiksmai | | Esami dokumentai | Neegzistuojantys failai / jau esantys failai | Pridėti/perrašyti (sukuria katalogą, jei jo nėra) |
Išvada
Aplanko laikiklis
- Jei leisite konteineryje montuoti neegzistuojančius arba tuščius aplankus, atitinkami konteinerio aplankai bus ištuštinti
- Pridėjus netuščią aplanką prie konteinerio, pradinis konteinerio aplankas bus perrašytas
Failo prijungimas
- Draudžiama montuoti neegzistuojančius failus į failus, kurie jau yra konteineryje
- Esami failai bus perrašyti, kai jie bus pridėti prie konteinerio, o jei failų nėra, jie bus sukurti
Taikymo scenarijai
- Iš aukščiau pateiktos analizės matyti, kad aplanko montavimas naudojamas failams perrašyti visame aplanke, todėl jį galima naudoti, kai į konteinerį reikia prijungti daug failų, be to, jei sumontuotas tuščias arba neegzistuojantis aplankas, jis paprastai naudojamas atvirkščiai: tai yra, paleidus konteinerį, kai kurie failai (pvz., Žurnalai) gali būti sugeneruoti konteinerio tvirtinimo taško aplanke, o šiuo metu jį galima tiesiogiai pamatyti atitinkamo pagrindinio kompiuterio aplanke.
- Failų prijungimas dažnai naudojamas konfigūracijos failams prijungti, kad būtų galima dinamiškai modifikuoti numatytąją konfigūraciją vykdymo metu, nes jis perrašo tik vieną failą, nepaveikdamas kitų failų tame pačiame konteinerio aplanke.
Perkelta iš:Hipersaito prisijungimas matomas.
(Pabaiga) |