Mhux aktar minn ftit jiem ilu, ġie deċiż fuq wieħed mis-servers li jċaqlaq il-ħażna tad-docker (id-direttorju fejn id-docker jaħżen il-fajls kollha tal-kontejners u tal-immaġni) għal sezzjoni separata, li
kellu kapaċità akbar. Il-kompitu deher trivjali u ma bassretx problemi...
Nibdew:
1. Waqqaf u oqtol il-kontenituri kollha tal-applikazzjoni tagħna:
docker-compose down
jekk hemm ħafna kontenituri u huma f'kompożizzjonijiet differenti, tista 'tagħmel dan:
docker rm -f $(docker ps -q)
2. Waqqaf id-daemon docker:
systemctl stop docker
3. Mexxi d-direttorju fil-post mixtieq:
cp -r /var/lib/docker /docker/data/storage
4. Aħna ngħidu lid-daemon docker biex ifittex fid-direttorju l-ġdid. Hemm diversi għażliet: jew uża l-bandiera -g biex tipponta d-daemon lejn triq ġdida, jew systemd configs, li użajna. Jew symlink. Mhux se nidħol f'ħafna dettall dwar dan, huwa fuq l-Internet.
5. Ibda d-daemon docker u kun żgur li jidher fil-post it-tajjeb:
systemctl status docker
F'waħda mil-linji tal-output għandna naraw:
├─19493 /usr/bin/dockerd --data-root=/docker/data/storage
Kun żgur li l-għażla għaddiet lid-daemon, issa ejja niċċekkjaw jekk applikahiex (grazzi
docker info | awk '/Root Dir/ {print $NF}'
6. Ejja nibdew l-applikazzjoni tagħna:
docker-compose up -d
7. Iċċekkja
U hawn jibda l-gost, DBMS, MQ, kollox tajjeb! Id-database hija intatta, kollox jaħdem... ħlief nginx. Għandna nginx tagħna stess build ma Kerberos u courtesans. U meta tara r-reġistri tal-kontejners indika li ma tistax tikteb f'/var/tmp - Permess miċħud. Ngħaqqad it-tempji b’subgħajh u nipprova janalizza s-sitwazzjoni... Dan kif hu possibbli? L-immaġni Docker ma nbidlitx. Aħna biss mċaqalqa d-direttorju. Dejjem ħadem, u hawn għalik... Għall-fini tal-esperiment, dħalt fil-kontenitur b'idi u biddilt id-drittijiet għal dan id-direttorju, kien hemm għerq, għerq 755, taw għerq, għerq 777. U beda kollox... F'rasi beda jinstema' ħsieb - xi tip ta' xi bla sens... Ħsibt, ukoll, forsi ma ħadtx xi ħaġa in kunsiderazzjoni...
Iddeċidejt li konna nħobbu d-drittijiet ta' aċċess għall-fajls waqt it-trasferiment. Waqqafna l-applikazzjoni, id-daemon docker, ħassarna d-direttorju l-ġdid u kkuppjajna d-direttorju /var/lib/docker bl-użu rsync -a
.
Naħseb li kollox huwa tajjeb issa, ejja ngħollu l-applikazzjoni Docker.
Aaand... il-problema baqgħet... Għajni tgerbet. Ġejt lejn il-console tal-magna virtwali tiegħi, fejn għamilt diversi testijiet, kelli din l-immaġni nginx, u tlajt ġewwa l-kontenitur, u hawn id-drittijiet għad-direttorju /var/tmp huma root, root 777. Jiġifieri, il- l-istess kif kelli nissettja manwalment. Imma l-immaġini huma identiċi!
Is-sistema tal-fajls xfs intużat kullimkien.
I mqabbla bl-użu tal-kmand
docker inspect my-nginx:12345
Il-hashes kollha huma identiċi, kollha wieħed għal wieħed. Kemm fuq is-server kif ukoll fuq il-magna virtwali tiegħi. Ħassejt l-immaġni nginx lokali u ġibtha mill-ġdid mir-reġistru, li għal numru ta 'raġunijiet jinsab fuq l-istess magna. U l-problema hija l-istess... Issa t-tieni għajn tiegħi qed tħawwad.
M'għadniex niftakar x'ħsibijiet kien hemm f'rasi, minbarra li għajjat "AAAAAAAAA" u affarijiet oħra. Kien l-4:XNUMX ta 'filgħodu, u l-kodiċi tas-sors Docker intuża biex jifhem il-prinċipju ta' hashing saffi ta 'immaġni. Infetaħ it-tielet bott ta 'xarba enerġetika. U fl-aħħar ħarġet fuqi li l-hashing iqis biss il-fajl, il-kontenut tiegħu, iżda MHUX DRITTIJIET TA' AĊĊESS! Jiġifieri, b'xi mod misterjuż id-drittijiet tagħna ntilfu, selinux huwa diżattivat, acl ma jintużax, u m'hemm l-ebda sticky bit.
Ħassejt l-immaġni lokali, ħassejt ukoll l-immaġni mir-reġistru tad-docker u erġajt imbuttha. U kollox ħadem. Jirriżulta li matul it-trasferiment id-drittijiet intilfu, kemm ġewwa l-immaġni lokali kif ukoll ġewwa l-immaġni li tinsab fir-reġistru. Kif diġà għedt, għal numru ta’ raġunijiet kienet tinsab fuq l-istess karozza. U bħala riżultat, f'direttorju wieħed /var/lib/docker.
U jantiċipaw il-mistoqsija jekk ippruvawx jirritornaw il-ħarsa tad-docker lejn id-direttorju l-antik - le, ma ppruvawx, sfortunatament, iċ-ċirkostanzi ma ppermettewhiex. Iva, u ridt tassew nifhem.
Wara li ktibt dan l-artiklu, is-soluzzjoni għall-problema tidher ovvja għalija, iżda fil-ħin tal-analiżi ma deherx hekk. Onestament, kont Google u ma sibtx sitwazzjonijiet simili.
Riżultat: I solvut il-problema, għadni ma nifhimx ir-raġuni =(
Jekk xi ħadd jaf, jaħtaf, kellu viżjoni dwar il-kawżi possibbli ta 'din il-problema, inkun kuntent ħafna li nisma' mingħandek fil-kummenti!
Sors: www.habr.com