Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 9379|Odpověď: 0

Soubor nebo složka neexistuje, když je Docker svazek připojen

[Kopírovat odkaz]
Zveřejněno 08.11.2021 9:20:35 | | |
Pozadí

Docker volume nám umožňuje dynamicky připojit některé soubory (například konfigurační soubory) tak, aby se původní soubory v obraze přepsali při spuštění docker kontejneru, ale co se stane, když připojíme složku nebo soubor, který na hostiteli ještě neexistuje, do kontejneru? LZ se s tímto problémem setkal ve své práci, a tak si ho sám procvičoval a výsledky experimentu zaznamenal následovně:

Držák na složky

Chování Dockeru při montáži složek je jednotné, a to následovně:

  • Pokud složka neexistuje, vytvoří se nejprve (nebo rekurzivně, pokud jde o víceúrovňovou složku)
  • Přepiš obsah složky v kontejneru obsahem složky na hostiteli


Podrobnosti jsou následující:

Složka na hostiteli existuje a není prázdná

hostitel
kontejner
Výsledek montáže
Existuje neprázdná složka ASložka B, která neexistujeNejprve vytvořte složku B v contanieru a pak zkopírujte všechny soubory ze složky A do B
Existuje neprázdná složka AExistuje neprázdná složka BNejprve vyprázdnit původní obsah kontejneru čínské složky B a poté zkopírovat čínskou kopii A do B

Bez ohledu na to, zda složka B v kontejneru existuje, A zcela přepíše obsah B

Složka na hostiteli existuje, ale je prázdná

hostitel
kontejner
Výsledek montáže
Prázdná složka A, která existujeExistuje neprázdná složka BObsah kontejneru čínské složky B je vyprázdněn

Obsah příslušné složky v kontejneru je vyprázdněn

Složka hostitele neexistuje

hostitel
kontejner
Výsledek montáže
Složka A, která neexistujeExistuje neprázdná složka BVytvořte složku A na hostiteli a obsah kontejneru Chinese folder B je vyprázdněn
Složky A/B/C, které neexistujíExistuje neprázdná složka BVytvořte složky A/B/C na hostiteli a obsah kontejneru Chinese folder B je vyprázdněn

Obsah příslušné složky v kontejneru je vyprázdněn

shrnutí

Hostitelská složka určitě přepíše složku s čínským kontejnerem:

hostitel
kontejner
Výsledek montáže
Složka neexistuje/složka existuje, ale je prázdnáSložka neexistuje/neexistuje, ale je prázdná/existuje a není prázdnáNádoba s čínským kusem je zakrytá (vyprázdněná)
Složka existuje a není prázdnáSložka neexistuje/neexistuje, ale je prázdná/existuje a není prázdnáObsah čínských složek v kontejneru je přepsán (původní obsah je vyprázdněn a obsah složky na hostiteli přepsán)

Montáž souboru

Největší rozdíl mezi montáží souborů a montáží složek je:

  • Docker zakazuje připojování souborů, které na hostiteli neexistují, na soubory, které už v kontejneru existují
  • Připojování souborů nemá žádný vliv na ostatní soubory ve stejné složce

Navíc jeho přepisování je konzistentní s přikládáním složek, tj.

  • Přepiš obsah souboru v kontejneru obsahem souboru na hostiteli


Podrobnosti jsou následující:

hostitel

hostitel
kontejner
Výsledek montáže
Soubory, které neexistují, configA.jsDokumenty, které již existují, congfigB.jsChyba, snažíte se připojit adresář na soubor (nebo naopak)? Zkontrolujte, zda existuje zadaná hostitelská cesta a je očekávaným typem. Generuje dva prázdné adresáře configA.js a configB.js na hostiteli současně, ale kontejner nemůže začít

hostitel

hostitel
kontejner
Výsledek montáže
Současný spis configA.jsSoučasný soubor congfigB.jskontejner čínský předmět configB.js zůstat stejný, ale obsah souboru je přepsán congfigA.js obsahem
Současný spis configA.jsSoubory, které neexistují, congfigB.jsNový soubor configB.js v kontejneru s obsahem configA.js zůstává configB.js všechny ostatní soubory pod souborem nezměněn

shrnutí

Soubor na hostiteli vždy přepíše složku s čínským kontejnerem

hostitel
kontejner
Výsledek montáže
Soubory, které neexistujíDokumenty, které již existujíZakázané činy
Existující dokumentySoubory, které neexistují / soubory, které už existujíPřidává/přepsává (vytvoří adresář, pokud neexistuje)

závěr

Držák na složky

  • Pokud povolíte vložení neexistujících nebo prázdných složek do kontejneru, příslušné složky v kontejneru budou vyprázdněny
  • Připojení neprázdné složky ke kontejneru přepíše původní složku v kontejneru

Montáž souboru

  • Je zakázáno připojovat neexistující soubory na soubory, které již v kontejneru existují
  • Existující soubory budou přepsány, když jsou připojeny ke kontejneru, a pokud soubory neexistují, budou vytvořeny

Scénáře použití

  • Z výše uvedené analýzy je patrné, že připojení složek slouží k přepsání souborů v celé složce, takže může být použito při vložení velkého počtu souborů do kontejneru, a navíc, pokud je připojena prázdná složka nebo neexistující složka, obvykle se používá opačně: to znamená, že po spuštění kontejneru mohou být některé soubory (například logy) generovány pod složkou připojovacího bodu v kontejneru a v tuto chvíli jsou přímo viditelné ve složce na příslušném hostiteli.
  • Připojení souborů se často používá k připojení konfiguračních souborů za účelem dynamické úpravy výchozí konfigurace za běhu, protože přepisuje pouze jeden soubor, aniž by ovlivnil ostatní soubory ve stejné složce v kontejneru.

Převedeno z:Přihlášení k hypertextovému odkazu je viditelné.

(Konec)




Předchozí:Elasticsearch používá elasticdump k zálohování a migraci dat
Další:Řešení chybové výjimky POI v Dockeru
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com