Istwa pwoblèm migrasyon depo docker (rasin docker)

Pa plis pase yon koup de jou de sa, li te deside sou youn nan sèvè yo deplase depo docker (anyè a kote docker magazen tout veso ak fichye imaj) nan yon seksyon separe, ki
te gen pi gwo kapasite. Travay la te sanble trivial epi li pa t predi pwoblèm...

Pou kòmanse:

1. Sispann epi touye tout resipyan aplikasyon nou an:

docker-compose down

si gen anpil resipyan epi yo nan diferan konpozisyon, ou ka fè sa:

docker rm -f $(docker ps -q)

2. Sispann demon docker la:

systemctl stop docker

3. Deplase anyè a nan kote ou vle a:

cp -r /var/lib/docker /docker/data/storage

4. Nou di docker daemon pou gade nan nouvo anyè a. Gen plizyè opsyon: swa itilize drapo a -g pou montre demon an nan yon nouvo chemen, oswa konfigirasyon systemd, ke nou te itilize. Oswa yon lyen senbolik. Mwen pa pral antre nan twòp detay sou sa a, li nan entènèt la. plen manyèl sou deplase rasin Docker nan yon nouvo kote.

5. Kòmanse demon docker a epi asire w ke li sanble nan bon kote:

systemctl status docker

Nan youn nan liy pwodiksyon nou ta dwe wè:

├─19493 /usr/bin/dockerd --data-root=/docker/data/storage

Nou te asire w ke opsyon a te pase bay demon an, kounye a ann tcheke si li te aplike li (mèsi inkvizitor68sl)!

docker info | awk '/Root Dir/ {print $NF}' 

6. Ann kòmanse aplikasyon nou an:

docker-compose up -d

7. Tcheke

Ak isit la plezi a kòmanse, DBMS, MQ, tout bagay anfòm! Baz done a entak, tout bagay ap travay... eksepte nginx. Nou gen pwòp nginx bati nou an ak Kerberos ak kourtizan. Epi gade mòso bwa yo veso a endike ke li pa ka ekri nan /var/tmp - Pèmisyon refize. Mwen mase tanp mwen ak dwèt mwen epi mwen eseye analize sitiyasyon an... Ki jan sa posib? Imaj Docker la pa t chanje. Nou jis deplase anyè a. Li te toujou travay, epi isit la se pou ou... Pou dedomajman pou eksperyans, mwen te antre nan veso a ak men m 'ak chanje dwa yo nan anyè sa a, te gen rasin, rasin 755, te bay rasin, rasin 777. Ak tout bagay te kòmanse... Yon panse te kòmanse sonnen nan tèt mwen - kèk kalite istwa san sans ... Mwen te panse, byen, petèt mwen pa t 'pran yon bagay an kont...

Mwen te deside ke nou te tonbe nan renmen ak dwa aksè nan dosye yo pandan transfè a. Nou sispann aplikasyon an, docker daemon, efase nouvo anyè a epi kopye /var/lib/docker anyè lè l sèvi avèk rsync -a.

Mwen panse ke tout bagay anfòm kounye a, ann ogmante aplikasyon an Docker.

Aaand... pwoblèm nan te rete... Je m te trese. Mwen te kouri nan konsole machin vityèl mwen an, kote mwen te fè tès divès kalite, mwen te gen imaj nginx sa a, epi mwen te monte andedan veso a, epi isit la dwa yo nan anyè /var/tmp yo se rasin, rasin 777. Sa vle di, la. menm jan mwen te oblije mete manyèlman. Men, imaj yo idantik!

Sistèm fichye xfs la te itilize toupatou.

Mwen konpare lè l sèvi avèk kòmandman an

docker inspect my-nginx:12345

Tout hashes yo idantik, tout youn a youn. Tou de sou sèvè a ak sou machin vityèl mwen an. Mwen efase imaj nginx lokal la epi rale l ankò nan rejis la, ki pou plizyè rezon se sou menm machin nan. Ak pwoblèm nan se menm bagay la tou... Koulye a, dezyèm je m 'se twitching.

Mwen pa sonje ki panse ki te nan tèt mwen ankò, san konte rele "AAAAAAAAA" ak lòt bagay. Li te 4 è nan maten, ak kòd sous Docker yo te itilize pou konprann prensip la nan hashing kouch imaj. Louvri twazyèm bwat bwè enèji. Ak nan fen li te parèt sou mwen ke hachaj sèlman pran an kont fichye a, sa li yo, men PA DWA AKSÈ! Sa vle di, nan kèk fason misterye dwa nou yo te pèdi, selinux se enfim, akl pa itilize, epi pa gen okenn ti kras kolan.

Mwen efase imaj lokal la, tou efase imaj la nan rejis Docker la epi pouse li ankò. Ak tout bagay te travay. Li sanble ke pandan transfè a dwa yo te pèdi, tou de andedan imaj lokal la ak andedan imaj la kouche nan rejis la. Kòm mwen te deja di, pou yon kantite rezon li te lokalize sou machin nan menm. Epi kòm yon rezilta, nan yon sèl anyè /var/lib/docker.

Ak antisipe kesyon an si yo te eseye retounen gade Docker a nan ansyen anyè a - non, yo pa t 'eseye, Ay, sikonstans pa t' pèmèt li. Wi, e mwen reyèlman te vle kalkile li.

Apre w fin ekri atik sa a, solisyon an nan pwoblèm nan sanble evidan pou mwen, men nan moman analiz la li pa t 'sanble sa. Onètman, mwen te Googled epi mwen pa t 'jwenn sitiyasyon ki sanble.

Rezilta: Mwen rezoud pwoblèm nan, mwen toujou pa konprann rezon an =(

Si yon moun konnen, devine, te gen yon vizyon sou kòz posib pwoblèm sa a, mwen pral trè kontan tande ou nan kòmantè yo!

Sous: www.habr.com

Add nouvo kòmantè