Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 9379|Vastaus: 0

Tiedosto tai kansio ei ole olemassa, kun Docker-levy on liitetty

[Kopioi linkki]
Julkaistu 8.11.2021 9.20.35 | | |
Tausta

Docker-volyymi mahdollistaa joidenkin tiedostojen (kuten konfiguraatiotiedostojen) dynaamisen liittämisen, jotta alkuperäiset tiedostot voidaan korvata kuvassa docker-kontin käynnistyessä, mutta mitä tapahtuu, jos liitämme kansion tai tiedoston, jota ei vielä ole kontin isännässä? LZ kohtasi tällaisen ongelman työssään, joten hän harjoitteli sitä itse ja kirjasi kokeelliset tulokset seuraavasti:

kansiokiinnike

Dockerin käytös kansioiden kiinnittämisessä on yhdenmukaista, seuraavasti:

  • Jos kansiota ei ole, se luodaan ensin (tai rekursiivisesti, jos se on monitasoinen kansio)
  • Kirjoita kansion sisältö kontissa isäntäkansion sisällön kanssa


Yksityiskohdat ovat seuraavat:

Isännän kansio on olemassa eikä ole tyhjä

isäntä
kontti
Mount-tulos
Ei-tyhjä kansio A on olemassaKansio B, jota ei ole olemassaLuo ensin kansio B Contanierissa ja kopioi sitten kaikki kansion A tiedostot kansioon B
Ei-tyhjä kansio A on olemassaEi-tyhjä kansio B on olemassaTyhjennä ensin alkuperäinen sisältö kontin kiinalaisesta kansiosta B ja kopioi sitten A kiinalainen kopio B:hen

Riippumatta siitä, onko kansio B kontissa olemassa, A korvaa kokonaan B:n sisällön

Isäntäkansio on olemassa, mutta tyhjä

isäntä
kontti
Mount-tulos
Tyhjä kansio A, joka on olemassaEi-tyhjä kansio B on olemassaContainer Chinese -kansion B sisältö tyhjennetään.

Vastaavan kansion sisältö säiliössä tyhjennetään

Isäntäkansiota ei ole olemassa

isäntä
kontti
Mount-tulos
Kansio A, jota ei ole olemassaEi-tyhjä kansio B on olemassaLuo kansio A isännälle, ja kontin kiinalaisen kansion B sisältö tyhjennetään
Kansiot A/B/C, joita ei ole olemassaEi-tyhjä kansio B on olemassaLuo kansiot A/B/C isäntäkanavalla, ja kontin kiinalaisen kansion B sisältö tyhjennetään

Vastaavan kansion sisältö säiliössä tyhjennetään

yhteenveto

Isäntäkansio korvaa varmasti kontin kiinalaisen kansion:

isäntä
kontti
Mount-tulos
Kansio ei ole olemassa/kansio on olemassa mutta on tyhjäKansio ei ole olemassa/on olemassa, mutta se on tyhjä/on olemassa eikä ole tyhjäAstia kiinalainen kappale on peitetty (tyhjennetty)
Kansio on olemassa eikä ole tyhjäKansio ei ole olemassa/on olemassa, mutta se on tyhjä/on olemassa eikä ole tyhjäcontainer Kiinan kansion sisältö ylikirjoitetaan (alkuperäinen sisältö tyhjennetään ja isännän kansion sisältö ylikirjoitetaan)

Tiedostoliitäntä

Suurin ero tiedoston kiinnityksen ja kansion kiinnittämisen välillä on:

  • Docker kieltää tiedostojen liittämisen, joita ei ole isännässä, tiedostoihin, jotka jo ovat kontissa
  • Tiedostojen liittäminen ei vaikuta muihin saman kansion tiedostoihin

Lisäksi sen ylikirjoituskäyttäytyminen on yhdenmukaista kansioiden liittämisen kanssa, eli:

  • Korvaa tiedoston sisältö kontissa isäntätiedoston sisällön kanssa


Yksityiskohdat ovat seuraavat:

isäntä

isäntä
kontti
Mount-tulos
Tiedostot, joita ei ole olemassa, configA.jsAsiakirjat, jotka ovat jo olemassa congfigB.jsVirhe, yritätkö liittää hakemiston tiedostoon (tai päinvastoin)? Tarkista, onko määritelty isäntäpolku olemassa ja onko se odotettu tyyppi. Se generoi kaksi tyhjää hakemistoa configA.js ja configB.js isännässä samanaikaisesti, mutta kontti ei voi käynnistyä

isäntä

isäntä
kontti
Mount-tulos
Present file configA.jsPresent file congfigB.jskonttikiinalainen tuote configB.js pysyä samana, mutta tiedoston sisältö korvataan congfigA.js sisällöllä
Present file configA.jsTiedostot, joita ei ole congfigB.jsUusi tiedosto, joka configB.js konttiin, jossa on configA.js-tiedoston sisältö, pysyy muuttumattomana configB.js kaikki muut tiedoston alla olevat tiedostot

yhteenveto

Isäntätiedosto korvaa aina konttikiinan kansion

isäntä
kontti
Mount-tulos
Tiedostot, joita ei ole olemassaAsiakirjat, jotka ovat jo olemassaKielletyt teot
Olemassa olevat asiakirjatTiedostot, joita ei ole olemassa / tiedostot, jotka ovat jo olemassaLisää/ylikirjoita (luo hakemiston, jos sitä ei ole olemassa)

johtopäätös

kansiokiinnike

  • Jos sallit olemattomien tai tyhjien kansioiden liittää konttiin, vastaavat kansiot säiliössä tyhjennetään
  • Ei-tyhjän kansion liittäminen konttiin korvaa alkuperäisen kansion kontissa

Tiedostoliitäntä

  • On kiellettyä liittää olemattomia tiedostoja tiedostoihin, jotka jo ovat kontissa
  • Olemassa olevat tiedostot ylikirjoitetaan, kun ne liitetään konttiin, ja jos tiedostoja ei ole, ne luodaan

Sovellusskenaariot

  • Yllä olevan analyysin perusteella nähdään, että kansion liittämistä käytetään tiedostojen ylikirjoittamiseen koko kansiossa, joten sitä voidaan käyttää, kun suuri määrä tiedostoja täytyy liittää konttiin, ja lisäksi, jos tyhjä kansio tai olematon kansio on liitetty, sitä käytetään yleensä päinvastoin: eli kontin käynnistämisen jälkeen joitakin tiedostoja (kuten lokit) voidaan luoda kontin kiinnityspisteen kansion alle, ja tällöin se näkyy suoraan vastaavan isäntälaitteen kansiossa.
  • Tiedostojen liittämistä käytetään usein konfiguraatiotiedostojen liittämiseen, jotta oletusasetukset voidaan muuttaa dynaamisesti ajonaikaisesti, koska se ylikirjoittaa vain yhden tiedoston vaikuttamatta muihin tiedostoihin samassa kansiossa kontissa.

Siirretty:Hyperlinkin kirjautuminen on näkyvissä.

(Loppu)




Edellinen:Elasticsearch käyttää elasticdumpia datan varmuuskopiointiin ja siirtämiseen
Seuraava:Docker POI -virhepoikkeusratkaisu
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com