Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 9379|Svare: 0

Filen eller mappen eksisterer ikke når Docker-volumet monteres

[Kopier lenke]
Publisert på 08.11.2021 09:20:35 | | |
Bakgrunn

Docker Volume lar oss dynamisk montere noen filer (som konfigurasjonsfiler) for å overskrive de opprinnelige filene i bildet når vi starter en Docker-container, men hva skjer hvis vi monterer en mappe eller fil som ennå ikke eksisterer på verten til containeren? LZ støtte på et slikt problem i sitt arbeid, så han øvde på det selv og registrerte de eksperimentelle resultatene som følger:

Folderfeste

Dockers oppførsel ved mappemontering er ensartet, som følger:

  • Hvis mappen ikke eksisterer, opprettes mappen først (eller rekursivt hvis det er en flernivå-mappe)
  • Overskriv mappeinnholdet i containeren med mappeinnholdet på verten


Detaljene er som følger:

Mappen på verten eksisterer og er ikke tom

vert
beholder
Resultat for montering
Ikke-tom mappe A eksistererMappe B som ikke eksistererLag mappe B i Contanier først, og kopier deretter alle filene i mappe A til B
Ikke-tom mappe A eksistererIkke-tom mappe B eksistererFørst tømmer du originalinnholdet i container-kinesisk mappe B, og kopierer deretter A kinesisk kopi til B

Uansett om mappe B i beholderen eksisterer eller ikke, vil A fullstendig overskrive innholdet i B

Mappen på verten eksisterer, men er tom

vert
beholder
Resultat for montering
Tom mappe A som eksistererIkke-tom mappe B eksistererInnholdet i containerens kinesiske mappe B tømmes

Innholdet i den tilsvarende mappen i beholderen tømmes

Vertsmappen eksisterer ikke

vert
beholder
Resultat for montering
Mappe A som ikke eksistererIkke-tom mappe B eksistererOpprett mappe A på vert, og innholdet i containerens kinesiske mappe B tømmes
Mapper A/B/C som ikke eksistererIkke-tom mappe B eksistererOpprett mapper A/B/C på vert, og innholdet i container-kinesisk mappe B tømmes

Innholdet i den tilsvarende mappen i beholderen tømmes

sammendrag

Vertsmappen vil definitivt overskrive container-mappen kinesisk:

vert
beholder
Resultat for montering
Mappen eksisterer ikke/mappen eksisterer, men er tomMappen eksisterer ikke/eksisterer, men er tom/eksisterer og er ikke tomBeholder Kinesisk stykke er dekket (tømt)
Mappen eksisterer og er ikke tomMappen eksisterer ikke/eksisterer, men er tom/eksisterer og er ikke tominnholdet i container-kinesiske mapper overskrives (det opprinnelige innholdet tømmes, og innholdet i mappen på verten overskrives)

Filmontering

Den største forskjellen mellom filmontering og mappemontering er:

  • Docker forbyr montering av filer som ikke finnes på verten til filer som allerede finnes i containeren
  • Filmontering har ingen effekt på andre filer under samme mappe

I tillegg er overskrivingsoppførselen konsistent med mappemontering, altså:

  • Overskriv innholdet i filen i beholderen med innholdet i filen på verten


Detaljene er som følger:

vert

vert
beholder
Resultat for montering
Filer som ikke eksisterer configA.jsDokumenter som allerede eksisterer congfigB.jsFeil, prøver du å montere en mappe på en fil (eller omvendt)? Sjekk om den angitte vertsstien eksisterer og er forventet type. Den genererer to tomme kataloger configA.js og configB.js på verten samtidig, men containeren kan ikke starte

vert

vert
beholder
Resultat for montering
Nåværende fil configA.jsNåværende fil congfigB.jscontainerkinesisk element configB.js forbli det samme, men filinnholdet overskrives av congfigA.js innhold
Nåværende fil configA.jsFiler som ikke eksisterer congfigB.jsEn ny fil configB.js i beholderen med innholdet i den configA.js filen forblir uendret configB.js alle andre filer under filen

sammendrag

Filen på verten vil alltid overskrive containerens kinesiske mappe

vert
beholder
Resultat for montering
Filer som ikke eksistererDokumenter som allerede eksistererForbudte handlinger
Eksisterende dokumenterFiler som ikke eksisterer / filer som allerede eksistererLegg til/overskriv (oppretter en mappe hvis den ikke finnes)

konklusjon

Folderfeste

  • Hvis du tillater ikke-eksisterende eller tomme mapper å monteres i beholderen, vil de tilsvarende mappene i beholderen tømmes
  • Å feste en ikke-tom mappe til en beholder vil overskrive den opprinnelige mappen i beholderen

Filmontering

  • Det er forbudt å montere ikke-eksisterende filer på filer som allerede finnes i beholderen
  • Eksisterende filer vil bli overskrevet når de festes til containeren, og hvis filene ikke eksisterer, vil de bli opprettet

Bruksscenarier

  • Fra analysen ovenfor kan man se at mappemontering brukes til å overskrive filer i hele mappen, så det kan brukes når et stort antall filer må monteres i containeren, i tillegg, hvis en tom mappe eller en ikke-eksisterende mappe monteres, brukes det vanligvis motsatt: det vil si at etter at containeren er startet, kan noen filer (som logger) genereres under mappen til monteringspunktet i containeren, og på dette tidspunktet kan den sees direkte i mappen på den tilsvarende verten.
  • Filmontering brukes ofte til å montere konfigurasjonsfiler for å dynamisk endre standardkonfigurasjonen under kjøring, fordi det bare overskriver én fil uten å påvirke andre filer i samme mappe i containeren.

Overført fra:Innloggingen med hyperkoblingen er synlig.

(Slutt)




Foregående:Elasticsearch bruker elasticdump for å sikkerhetskopiere og migrere data
Neste:Docker POI-feilunntaksløsning
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com