Il-muntatura tal-volum Docker tfalli wara li l-VPN jikkonnettja: iċċekkja d-daemon
Il-bind mount tiegħek tajjeb. VPN ibiddel liema daemon iwieġeb lill-klijent, għalhekk ipprintja l-endpoint, ipprova l-mogħdija hemm, u waqaf milli teditja l-volum.
Kważi kull kitba dwar din il-problema tagħti l-ħtija lill-volum, u għalhekk il-fejqan jieħu daqstant żmien. Kellek bind mount li kien jaħdem, il-VPN korporattiv ikkonnettja, u docker compose up issa jfalli b'mogħdija tas-sors nieqsa, direttorju vojt jew muntatura li l-magna tirrifjuta li toħloq. Fl-ambjenti li naddaft, il-fajl Compose ma kienx inbidel u l-mogħdija kienet korretta. Dak li nbidel kien liema daemon irċieva t-talba, u l-iżball tal-muntatura kien biss l-ewwel post fejn din id-differenza saret viżibbli.
Il-volum qatt ma ċċaqlaq; it-talba ċċaqalqet
Il-bandiera -v /srv/app:/app mhijiex kopja ta' direttorju li tagħmel ix-shell tiegħek. Il-klijent ibiddilha f'talba API, u d-daemon li jwieġeb issolvi /srv/app kontra s-sistema tal-fajls tiegħu stess. Meta ż-żewġ naħat jaħdmu fuq l-istess kernel, dik il-mogħdija hija dik li tara fil-maniġer tal-fajls. Meta l-endpoint jinbidel, l-istess string jitfittex fuq magna li qatt ma semgħet b'direttorju tal-proġett tiegħek, u d-daemon jew jirrapporta s-sors bħala nieqes jew joħloq bilkwiet direttorju vojt fil-post tiegħu.
Dan huwa wkoll għaliex volum imsemmi jibqa' jaħdem waqt li bind mount le. -v appdata:/app semmi ħażna li d-daemon jippossjedi, għalhekk l-ebda mogħdija tal-host m'għandha teżisti f'post partikolari. Jekk it-tibdil ta' servizz minn bind mount għal volum imsemmi jġiegħel l-iżball jisparixxi, inti ma tajtx ħjiel il-problema. Inti kkonfermajt li l-klijent u d-daemon ma jaqblux dwar liema sistema tal-fajls il-mogħdija tappartjeni, u dak in-nuqqas ta' qbil jerġa' lura fil-mument li terġa' tkun teħtieġ direttorju reali tal-host.
Ipprintja l-endpoint qabel ma tmiss il-muntatura
Diversi settings jistgħu jindikaw il-klijent lejn endpoint, u mhux dejjem jaqblu: --context bandiera, DOCKER_CONTEXT, DOCKER_HOST fix-shell attwali, u l-kuntest maħżun fil-konfigurazzjoni tal-klijent. Minflok ma targumenta dwar il-prijorità, ipprintjahom kollha u qabbel it-tweġibiet.
docker context show
docker context ls
docker version
docker info --format "{{.Name}} {{.OperatingSystem}} {{.ServerVersion}}"
Il-konfigurazzjoni tal-klijent tinsab fi ~/.docker/config.json fuq Linux u macOS u fi %USERPROFILE%\.docker\config.json fuq Windows, u valur esportat fit-terminal attwali jissostitwixxi dak maħżun biss għal dik is-sessjoni. Jekk l-endpoint huwa isem tal-host minflok socket lokali, ir-riżoluzzjoni tal-ismijiet u r-rotot jiddeċiedu fejn jinżel, u dawk huma preċiżament dak li jikteb mill-ġdid klijent VPN. Tunnel li jżid rotta jew ibiddel ir-riżolutur jista' jibgħat isem li qabel kien ifisser dan il-laptop lejn indirizz ġewwa n-netwerk korporattiv.
Qabbel l-istat minflok il-konfigurazzjoni. Mexxi docker ps -a u docker images bit-tunnel mitfi, imbagħad għal darb'oħra bil-tunnel mixgħul. Lista differenti ta' kontenituri hija prova aktar b'saħħitha minn kwalunkwe fajl ta' konfigurazzjoni, għax turi li daemon differenti wieġeb it-talba tiegħek.
Staqsi lid-daemon jekk il-mogħdija teżistix hemm
Ladarba tkun taf liema daemon wasalt, agħmilha tħares lejn id-direttorju. --mount il-forma tfalli b'messaġġ aktar ċar mill-bandiera qasira, għax tivvalida s-sors qabel ma tibda l-kontenitur:
docker run --rm --mount type=bind,source=/srv/app,target=/app alpine ls -la /app
Jekk tirrapporta s-sors bħala nieqes, oħloqha fuq il-magna li wieġbet, jew indika s-servizz lejn volum imsemmi u kkupja d-dejta hemmhekk. Dak li m'għandekx tagħmel huwa li terġa' toħloq volumi u terġa' tinstalla l-magna qabel dan l-iċċekkjar. Dawk l-azzjonijiet ibiddlu l-ambjent biżżejjed biex jaħbu n-nuqqas ta' qbil filwaqt li jħalluh fil-post tiegħu.
Mogħdija oħra tgħaddi f'post kompletament differenti: li tiġbed image hija xogħol tad-daemon, mhux tal-klijent. Ġibda b'suċċess tipprova biss li d-daemon jista' jilħaq registry, u bind mount li jaħdem jipprova biss li mogħdija ġiet solvuta. Ipprova kull mogħdija fejn fil-fatt tiġi esegwita, inkella tqatta' nofs ta' jum fuq il-ħażina.
L-ismijiet tal-intranet ifallu għal raġuni differenti
In-nofs l-ieħor tal-istess rapport normalment huwa li l-kontenitur ma jistax jilħaq intranet.corp.example. Dan huwa mekkaniżmu separat, mhux it-tieni problema tal-volum. Kontenitur jikseb il- /etc/resolv.conf tiegħu meta jibda, iġġenerat mis-settings tar-riżolutur tad-daemon, għalhekk server DNS li l-VPN żied wara li nħoloq il-kontenitur mhux se jidher hemm sakemm il-kontenitur jerġa' jinħoloq.
Ir-riżolutur inkorporat ta' Docker fuq netwerk definit mill-utent jibgħat it-talbiet esterni lis-servers konfigurati tal-host, li jgħin meta l-VPN jikteb mill-ġdid ir-riżolutur tal-host u jagħmel ħsara meta DNS maqsum jibgħat żona interna lejn server li d-daemon ma jibqax jarah. Immappjar dejjaq u espliċitu jevita l-argument għal ismijiet li qatt ma jinbidlu:
services:
web:
extra_hosts:
- "intranet.corp.example:10.20.30.40"
Dan jikteb entrata fil-fajl hosts tal-kontenitur, għalhekk il-kontenitur qatt ma jitgħallem xejn dwar it-tunnel, u jiffriża wkoll l-indirizz. Meta l-host intern jiċċaqlaq, l-entrata tibqa' ħażina sakemm xi ħadd jeditja l-fajl Compose. Użah għal apparat fiss jew database ippinnjata, u ħalli d-DNS jimmaniġġja l-ismijiet li jiċċaqilqu.
X'jibdel tassew installazzjoni mill-ġdid
L-installazzjoni mill-ġdid ta' Docker Desktop toħloq mill-ġdid il-VM, is-socket u l-lista tal-kuntesti, u l-muntatura terġa' tibda taħdem. Dak ir-riżultat huwa reali u ma jgħallem xejn, u għalhekk l-istess ħsara terġa' lura wara l-aġġornament VPN li jmiss. L-installazzjoni mill-ġdid issostitwiet l-endpoint li kien qed juża l-klijent; ma rrikonċiljatx il-mogħdija li semmi l-proġett tiegħek mas-sistema tal-fajls li d-daemon fil-fatt jaqra.
L-ordni tax-xogħol tiegħi hija qasira. Ikkonferma liema endpoint se juża l-klijent. Ikkonferma liema daemon wieġeb billi tqabbel il-listi tal-kontenituri. Itlob lil dak id-daemon jelenka l-mogħdija tas-sors. Imbagħad biss editja l-muntatura, żid entrata hosts jew ibdel tip ta' volum. Jekk tmexxi l-fajl Compose għal tim li jaħdem fuq VPN, ippreferi volumi msemmija għad-dejta li d-daemon għandu jippossjedi, sabiex mogħdija tal-host qatt ma ssir parti mill-kuntratt.