Sejarah masalah migrasi panyimpenan docker (root docker)

Ora luwih saka sawetara dina kepungkur, diputusake salah sawijining server kanggo mindhah panyimpenan docker (direktori ing ngendi docker nyimpen kabeh file wadhah lan gambar) menyang bagean sing kapisah, sing
wis kapasitas luwih. Tugas kasebut katon sepele lan ora ramalake masalah ...

Ayo miwiti:

1. Mungkasi lan mateni kabeh kontaner aplikasi kita:

docker-compose down

Yen ana akeh wadhah lan ana ing komposisi sing beda, sampeyan bisa nindakake iki:

docker rm -f $(docker ps -q)

2. Mungkasi daemon docker:

systemctl stop docker

3. Pindhah direktori menyang lokasi sing dikarepake:

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

4. Kita marang daemon docker kanggo katon ing direktori anyar. Ana sawetara opsi: nggunakake flag -g kanggo ngarahake daemon menyang dalan anyar, utawa konfigurasi systemd, sing digunakake. Utawa symlink. Aku ora bakal pindhah menyang kakehan rinci babagan iki, iku ing Internet. kebak manual babagan mindhah docker root menyang lokasi anyar.

5. Miwiti daemon docker lan priksa manawa katon ing panggonan sing bener:

systemctl status docker

Ing salah sawijining garis output, kita kudu ndeleng:

β”œβ”€19493 /usr/bin/dockerd --data-root=/docker/data/storage

Kita mesthekake yen pilihan kasebut diterusake menyang daemon, saiki ayo priksa manawa wis ditrapake (matur nuwun "inkvizitor 68sl kab)!

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

6. Ayo miwiti aplikasi kita:

docker-compose up -d

7. Priksa

Lan ing kene kesenengan diwiwiti, DBMS, MQ, kabeh apik! Basis data utuh, kabeh bisa digunakake ... kajaba nginx. Kita duwe nginx dhewe mbangun karo Kerberos lan courtesans. Lan ndeleng log wadhah nuduhake yen ora bisa nulis menyang / var / tmp - Idin ditolak. Aku knead kuil karo driji lan nyoba kanggo njelasno kahanan ... Carane iki bisa? Gambar Docker ora owah. Kita mung mindhah direktori. Iku tansah bisa, lan iki kanggo sampeyan ... Kanggo eksperimen, aku mlebu ing wadhah nganggo tanganku lan ngganti hak kanggo direktori iki, ana ROOT, ROOT 755, menehi ROOT, ROOT 777. Lan kabeh diwiwiti ... A pikiran wiwit muni ing sirah - sawetara jenis omong kosong ... Aku panginten, uga, mungkin aku ora njupuk soko menyang akun ...

Aku mutusakΓ© sing kita ambruk ing katresnan karo hak akses kanggo file sak transfer. Kita mandhegake aplikasi kasebut, daemon docker, mbusak direktori anyar lan nyalin direktori /var/lib/docker nggunakake rsync -a.

Aku saiki wis apik, ayo ngunggahake aplikasi Docker.

Aaand... masalahe tetep... Mripatku kedutan. Aku kesusu menyang console saka mesin virtual, ngendi aku mbukak macem-macem tes, Aku gambar nginx iki, lan aku menek nang wadhah, lan kene hak kanggo direktori / var / tmp ROOT, ROOT 777. padha karo aku kudu nyetel manual. Nanging gambar sing padha!

Sistem file xfs digunakake ing endi wae.

Aku dibandhingake nggunakake printah

docker inspect my-nginx:12345

Kabeh hash padha, kabeh siji kanggo siji. Loro-lorone ing server lan ing mesin virtual. Aku mbusak gambar nginx lokal lan ditarik maneh saka pendaptaran, kang kanggo sawetara alasan ing mesin padha. Lan masalahe padha ... Saiki mripat kapindho saya kedutan.

Aku ora ngelingi maneh apa sing ana ing sirahku, kajaba bengok "AAAAAAAAA" lan liya-liyane. Iku jam 4 esuk, lan kode sumber Docker digunakake kanggo mangerteni prinsip hashing lapisan gambar. Mbukak kaleng ketiga minuman energi. Lan ing pungkasan iku dawned ing kula sing hashing mung njupuk menyang akun file, isine, nanging ORA AKSES HAK! Tegese, kanthi cara sing misterius hak kita wis ilang, selinux dipateni, acl ora digunakake, lan ora ana sing lengket.

Aku mbusak gambar lokal, uga mbusak gambar saka pendaptaran docker lan di-push maneh. Lan kabeh bisa. Pranyata metu sing sak transfer hak padha ilang, loro nang gambar lokal lan nang gambar lying ing pendaptaran. Nalika aku wis ngandika, kanggo sawetara alasan dumunung ing mobil padha. Lan minangka asil, ing siji direktori /var/lib/docker.

Lan ngarep-arep pitakonan apa dheweke nyoba bali menyang docker menyang direktori lawas - ora, padha ora nyoba, sayangΓ©, kahanan ora ngidini. Ya, lan aku pancene pengin ngerteni.

Sawise nulis artikel iki, solusi kanggo masalah kasebut katon jelas kanggo aku, nanging nalika analisa, ora kaya ngono. Jujur, aku Googled lan ora nemokake kahanan sing padha.

Asil: Aku ngrampungake masalah, aku isih ora ngerti alesan =(

Yen ana sing ngerti, ngira, duwe visi babagan kemungkinan penyebab masalah iki, aku bakal seneng banget krungu saka sampeyan ing komentar!

Source: www.habr.com

Add a comment