Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 9379|Odpowiedź: 0

Plik lub folder nie istnieją, gdy wolumin Dockera jest zamontowany

[Skopiuj link]
Opublikowano 08.11.2021 09:20:35 | | |
Tło

Wolumin Docker pozwala dynamicznie montować niektóre pliki (takie jak pliki konfiguracyjne), aby nadpisać oryginalne pliki na obrazie podczas uruchamiania kontenera dockera, ale co się stanie, jeśli zamontujemy folder lub plik, który jeszcze nie istnieje na hostze, do kontenera? LZ napotkał taki problem w swojej pracy, więc sam go przećwiczył i zarejestrował wyniki eksperymentów w następujący sposób:

Montaż teczek

Zachowanie Dockera przy montowaniu teczek jest jednorodne, w następujący sposób:

  • Jeśli folder nie istnieje, najpierw tworzy się go (lub rekurencyjnie, jeśli jest to folder wielopoziomowy)
  • Nadpisz zawartość folderu w kontenerze z zawartością folderu na hostie


Szczegóły są następujące:

Folder na hostze istnieje i nie jest pusty

gospodarz
kontener
Rezultat montażu
Istnieje niepusty folder AFolder B, który nie istniejeNajpierw utwórz folder B w Contanier, a następnie skopiuj wszystkie pliki z folderu A do B
Istnieje niepusty folder AIstnieje folder B bez pustościNajpierw opróżni oryginalną zawartość pojemnika chińskiego folderu B, a następnie skopiuj chińską kopię do B

Niezależnie od tego, czy folder B w kontenerze istnieje, A całkowicie nadpisuje zawartość B

Folder na hostze istnieje, ale jest pusty

gospodarz
kontener
Rezultat montażu
Pusty folder A, który istniejeIstnieje folder B bez pustościZawartość chińskiego folderu B jest opróżniona

Zawartość odpowiadającego folderu w kontenerze jest opróżniana

Folder hosta nie istnieje

gospodarz
kontener
Rezultat montażu
Folder A, który nie istniejeIstnieje folder B bez pustościUtwórz folder A na hostze, a zawartość chińskiego folderu B zostaje opróżniona
Foldery A/B/C, które nie istniejąIstnieje folder B bez pustościUtwórz foldery A/B/C na hostze, a zawartość chińskiego folderu B jest opróżniana

Zawartość odpowiadającego folderu w kontenerze jest opróżniana

streszczenie

Folder hosta na pewno nadpisze chiński folder kontenera:

gospodarz
kontener
Rezultat montażu
Folder nie istnieje/folder istnieje, ale jest pustyFolder nie istnieje/istnieje, ale jest pusty/istnieje i nie jest pustypojemnik chiński jest przykryty (opróżniony)
Folder istnieje i nie jest pustyFolder nie istnieje/istnieje, ale jest pusty/istnieje i nie jest pustyzawartość chińskich folderów w kontenerze jest nadpisywana (oryginalna zawartość jest opróżniana, a zawartość folderu na hostie nadpisywana)

Montaż pliku

Największa różnica między montowaniem plików a montażem folderów to:

  • Docker zabrania montowania plików, które nie istnieją na hostze, do plików już istniejących w kontenerze
  • Montaż plików nie ma wpływu na inne pliki w tym samym folderze

Ponadto jego zachowanie nadpisywania jest zgodne z montowaniem folderów, tzn.:

  • Nadpisz zawartość pliku w kontenerze zawartością pliku na hostze


Szczegóły są następujące:

gospodarz

gospodarz
kontener
Rezultat montażu
Pliki, które nie istnieją, configA.jsDokumenty, które już istnieją, congfigB.jsBłąd, czy próbujesz zamontować katalog na pliku (czy odwrotnie)? Sprawdź, czy istnieje określona ścieżka hosta i czy jest typem oczekiwanym. Generuje dwa puste katalogi configA.js i configB.js na hostze jednocześnie, ale kontener nie może się uruchomić

gospodarz

gospodarz
kontener
Rezultat montażu
Obecny akt configA.jsObecny akt congfigB.jspojemnik chiński configB.js pozostać taki sam, ale zawartość pliku jest nadpisywana przez congfigA.js zawartość
Obecny akt configA.jsPliki, które nie istnieją, congfigB.jsNowy plik configB.js w kontenerze z zawartością pliku configA.js pozostaje niezmieniony configB.js wszystkie pozostałe pliki pod tym plikiem

streszczenie

Plik na hostze zawsze nadpisuje chiński folder kontenera

gospodarz
kontener
Rezultat montażu
Pliki, które nie istniejąDokumenty, które już istniejąZakazane czyny
Istniejące dokumentyPliki, które nie istnieją / pliki, które już istniejąDodaj/nadpisz (tworzy katalog, jeśli go nie ma)

konkluzja

Montaż teczek

  • Jeśli pozwolisz na zamontowanie nieistniejących lub pustych teczek w kontenerze, odpowiednie foldery w kontenerze zostaną opróżnione
  • Dołączenie niepustego folderu do kontenera nadpisuje oryginalny folder w kontenerze

Montaż pliku

  • Zabronione jest montowanie nieistniejących plików na plikach, które już istnieją w kontenerze
  • Istniejące pliki zostaną nadpisane po dołączeniu do kontenera, a jeśli pliki nie istnieją, zostaną utworzone

Scenariusze zastosowań

  • Z powyższej analizy wynika, że montowanie folderów służy do nadpisywania plików w całym folderze, więc może być stosowane, gdy do kontenera trzeba zamontować dużą liczbę plików, a ponadto, jeśli zamontowany jest pusty folder lub nieistniejący folder, zazwyczaj stosuje się go odwrotnie: to znaczy, po uruchomieniu kontenera niektóre pliki (np. logi) mogą być generowane pod folderem punktu montażu w kontenerze i wtedy można je bezpośrednio zobaczyć w folderze na odpowiednim hostze.
  • Montaż plików jest często używany do montowania plików konfiguracyjnych w celu dynamicznej modyfikacji domyślnej konfiguracji w czasie działania, ponieważ nadpisuje tylko pojedynczy plik bez wpływu na inne pliki w tym samym folderze kontenera.

Przeniesiono z:Logowanie do linku jest widoczne.

(Koniec)




Poprzedni:Elasticsearch wykorzystuje elasticdump do tworzenia kopii zapasowych i migracji danych
Następny:Rozwiązanie wyjątku błędów POI w Dockerze
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com