Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 9379|Odgovoriti: 0

Datoteka ali mapa ne obstaja, ko je Docker volumen pritrjen

[Kopiraj povezavo]
Objavljeno na 8. 11. 2021 09:20:35 | | |
Ozadje

Dockerjev volumen nam omogoča, da dinamično pritrdimo nekatere datoteke (kot so konfiguracijske datoteke), da prepišemo izvirne datoteke v sliki ob zagonu docker vsebnika, vendar kaj se zgodi, če mapo ali datoteko, ki še ne obstaja na gostitelju, pritrdimo na ta kontejner? LZ se je s takšno težavo srečal pri svojem delu, zato jo je sam vadil in eksperimentalne rezultate zabeležil takole:

nosilec za mape

Dockerjevo vedenje pri pritrjevanju map je enotno, kot sledi:

  • Če mapa ne obstaja, se najprej ustvari (ali rekurzivno, če gre za večnivojsko mapo)
  • Prepiši vsebino mape v kontejnerju z vsebino mape na gostitelju


Podrobnosti so naslednje:

Mapa na gostitelju obstaja in ni prazna

gostitelj
vsebnik
Rezultat montaže
Obstaja neprazna mapa AMapa B, ki ne obstajaNajprej ustvari mapo B v contanierju, nato pa kopiraj vse datoteke iz mape A v B
Obstaja neprazna mapa AObstaja neprazna mapa BNajprej izpraznite izvirno vsebino kitajske mape B, nato pa kopirajte kopijo A v B

Ne glede na to, ali mapa B v vsebniku obstaja, bo A popolnoma prepisala vsebino B

Mapa na gostitelju obstaja, vendar je prazna

gostitelj
vsebnik
Rezultat montaže
Prazna mapa A, ki obstajaObstaja neprazna mapa BVsebina kitajske mape B je izpraznjena

Vsebina ustrezne mape v kontejnerju se izprazni

Mapa gostitelja ne obstaja

gostitelj
vsebnik
Rezultat montaže
Mapa A, ki ne obstajaObstaja neprazna mapa BUstvari mapo A na gostitelju, vsebina kitajske mape B pa se izprazni
Mape A/B/C, ki ne obstajajoObstaja neprazna mapa BUstvari mape A/B/C na gostitelju, vsebina kitajske mape B pa se izprazni

Vsebina ustrezne mape v kontejnerju se izprazni

Povzetek

Gostiteljska mapa bo zagotovo prepisala kitajsko mapo v kontejnerju:

gostitelj
vsebnik
Rezultat montaže
Mapa ne obstaja/mapa obstaja, ampak je praznaMapa ne obstaja/ne obstaja, ampak je prazna/obstaja in ni praznaposoda za kitajski kos je pokrita (izpraznjena)
Mapa obstaja in ni praznaMapa ne obstaja/ne obstaja, ampak je prazna/obstaja in ni praznavsebina map v kontejnerju je prepisana (izvirna vsebina se izprazni, vsebina mape na gostitelju pa se prepiše)

Nosilec datoteke

Največja razlika med nameščanjem datotek in montažo map je:

  • Docker prepoveduje prirejanje datotek, ki na gostitelju ne obstajajo, na datoteke, ki že obstajajo v vsebniku
  • Prilepljanje datotek nima vpliva na druge datoteke v isti mapi

Poleg tega je njegovo prepisovanje skladno z nameščanjem map, tj.

  • Prepišite vsebino datoteke v kontejnerju z vsebino datoteke na gostitelju


Podrobnosti so naslednje:

gostitelj

gostitelj
vsebnik
Rezultat montaže
Datoteke, ki ne obstajajo configA.jsDokumenti, ki že obstajajo congfigB.jsNapaka, Ali poskušate priklopiti mapo na datoteko (ali obratno)? Preverite, ali določena pot gostitelja obstaja in ali je pričakovani tip. Hkrati ustvari dve prazni mapi configA.js in configB.js na gostitelju, vendar kontejner ne more zagnati

gostitelj

gostitelj
vsebnik
Rezultat montaže
Trenutni configA.jsTrenutni congfigB.jskontejner kitajski predmet configB.js ostane enak, vendar je vsebina datoteke prepisana z vsebino congfigA.js
Trenutni configA.jsDatoteke, ki ne obstajajo congfigB.jsNova datoteka, configB.js v vsebniku z vsebino configA.js datoteke, ostane nespremenjena configB.js vse druge datoteke pod datoteko

Povzetek

Datoteka na gostitelju bo vedno prepisala mapo za kitajsko posodo

gostitelj
vsebnik
Rezultat montaže
Datoteke, ki ne obstajajoDokumenti, ki že obstajajoPrepovedana dejanja
Obstoječi dokumentiDatoteke, ki ne obstajajo / datoteke, ki že obstajajoDodajanje/prepisovanje (ustvari imenik, če ne obstaja)

Sklep

nosilec za mape

  • Če dovolite, da se neobstoječe mape ali prazne mape pritrdijo v kontejner, se ustrezne mape v kontejnerju izpraznijo
  • Dodajanje neprazne mape na vsebnik bo prepisalo izvirno mapo v vsebniku

Nosilec datoteke

  • Prepovedano je nameščati neobstoječe datoteke na datoteke, ki že obstajajo v kontejnerju
  • Obstoječe datoteke bodo prepisane, ko so priključene na kontejner, in če datotek ne obstajajo, bodo ustvarjene

Scenariji uporabe

  • Iz zgornje analize je razvidno, da se nameščanje map uporablja za prepisovanje datotek v celotni mapi, zato se lahko uporabi, kadar je treba v kontejner priklopiti veliko število datotek, poleg tega pa, če je priklopljena prazna mapa ali neobstoječa mapa, se običajno uporablja obratno: to pomeni, da se po zagonu vsebnika lahko pod mapo pritrdilne točke v vsebniku ustvarijo nekatere datoteke (kot so dnevniki), ki jih je mogoče neposredno videti v mapi na ustreznem gostitelju.
  • Nameščanje datotek se pogosto uporablja za montažo konfiguracijskih datotek za dinamično spreminjanje privzete konfiguracije med izvajanjem, saj prepiše le eno datoteko, ne da bi vplival na druge datoteke v isti mapi v vsebniku.

Preneseno iz:Prijava do hiperpovezave je vidna.

(Konec)




Prejšnji:Elasticsearch uporablja elasticdump za varnostno kopiranje in migracijo podatkov
Naslednji:Rešitev izjeme napak pri POI v Dockerju
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com