Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с прСноса Π½Π° docker storage (docker root)

НС ΠΏΠΎ-късно ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈ няколко Π΄Π½ΠΈ бСшС Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΄Π° сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈ Docker Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ (дирСкторията, Π² която Docker ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅) Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ дял, ΠΊΠΎΠΉΡ‚ΠΎ
имашС ΠΏΠΎ-голям ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚. Π—Π°Π΄Π°Ρ‡Π°Ρ‚Π° изглСТдашС Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π½Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π²Π΅Ρ‰Π°Π²Π°ΡˆΠ΅ бСда…

Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅:

1. Π‘ΠΏΠΈΡ€Π°ΠΌΠ΅ ΠΈ ΡƒΠ±ΠΈΠ²Π°ΠΌΠ΅ всички ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

docker-compose down

Π°ΠΊΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ са Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ compose, ΠΌΠΎΠΆΠ΅ Ρ‚Π°ΠΊΠ°:

docker rm -f $(docker ps -q)

2. Π‘ΠΏΠΈΡ€Π°ΠΌΠ΅ Docker Π΄Π΅ΠΌΠΎΠ½Π°:

systemctl stop docker

3. ΠŸΡ€Π΅ΠΌΠ΅ΡΡ‚Π²Π°ΠΌΠ΅ дирСкторията Π½Π° Π½ΡƒΠΆΠ½ΠΎΡ‚ΠΎ място:

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

4. Π˜Π½Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°ΠΌΠ΅ Docker Π΄Π΅ΠΌΠΎΠ½Π° Π΄Π° насочва Π½ΠΎΠ²Π°Ρ‚Π° дирСктория. Π’ΡƒΠΊ ΠΈΠΌΠ° няколко Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: ΠΈΠ»ΠΈ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ Π±ΠΈΠ»ΠΎ Ρ‡Ρ€Π΅Π· Ρ„Π»Π°Π³ -g новия ΠΏΡŠΡ‚ Π½Π° Π΄Π΅ΠΌΠΎΠ½Π°, ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° systemd, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅. Или симлинк. Няма Π΄Π° Π½Π°Π²Π»ΠΈΠ·Π°ΠΌ Π² Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠ½Π°, Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²Π° Π·Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Docker root Π½Π° Π½ΠΎΠ²ΠΎ място.

5. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Docker Π΄Π΅ΠΌΠΎΠ½Π° ΠΈ наблюдавамС Π΄Π°Π»ΠΈ провСрява ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ:

systemctl status docker

Π’ Π΅Π΄Π½Π° ΠΎΡ‚ Π»ΠΈΠ½ΠΈΠΈΡ‚Π΅ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° трябва Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ:

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

Π£Π±Π΅Π΄Π΅Π½, Ρ‡Π΅ опцията Π΅ ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½Π° Π½Π° Π΄Π΅ΠΌΠΎΠ½Π°, сСга Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π»ΠΈ Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π° (благодарности Π½Π° inkvizitor68sl)!

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

6. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

docker-compose up -d

7. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅

И Ρ‚ΡƒΠΊ Π·Π°ΠΏΠΎΡ‡Π²Π° Π½Π°ΠΉ-интСрСсната част, Π‘Π£Π‘Π”, MQ, всичко Π΅ Π½Π°Ρ€Π΅Π΄! Π‘Π°Π·Π°Ρ‚Π° Π΅ Π½Π΅ΠΏΠΎΠΊΡŠΡ‚Π½Π°Ρ‚Π°, всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ... освСн nginx. ИмамС наша собствСна вСрсия Π½Π° nginx с Kerberos ΠΈ ΠΊΡƒΡ€Ρ‚ΠΈΠ·Π°Π½ΠΊΠΈ. И ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Ρ‚ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° пишС Π² /var/tmp β€” Permission denied. Загрявам ΠΏΡ€ΡŠΡΡ‚ΠΈΡ‚Π΅ си ΠΈ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌ Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌ ситуацията... Какво става? Docker ΠΎΠ±Ρ€Π°Π·ΡŠΡ‚ Π½Π΅ бСшС промСнян. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ…ΠΌΠ΅ дирСкторията. Π’ΠΈΠ½Π°Π³ΠΈ Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»ΠΎ, ΠΈ извСднъТ... Π—Π° СкспСримСнта влязох Ρ€ΡŠΡ‡Π½ΠΎ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ… ΠΏΡ€Π°Π²Π°Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ дирСктория, бяха root, root 755, Π΄Π°Π΄ΠΎΡ… root, root 777. И всичко Ρ‚Ρ€ΡŠΠ³Π½Π°... Π’ Π³Π»Π°Π²Π°Ρ‚Π° ΠΌΠΈ ΠΏΡ€ΠΎΠ·Π²ΡƒΡ‡Π° мисъл β€” абсурд… ΠŸΠΎΠΌΠΈΡΠ»ΠΈΡ… си, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅ съм Π½Π΅Ρ‰ΠΎ пропуснал...

Π Π΅ΡˆΠΈΡ…, Ρ‡Π΅ смС Π·Π°Π³ΡƒΠ±ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²Π°Ρ‚Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ. Π‘ΠΏΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Docker Π΄Π΅ΠΌΠΎΠ½Π°, ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΌΠ΅ Π½ΠΎΠ²Π°Ρ‚Π° дирСктория ΠΈ ΠΏΡ€Π°Π²ΠΈΠΌ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° дирСкторията /var/lib/docker, ΠΊΠ°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ rsync -a.

Мисля, Ρ‡Π΅ сСга всичко Π΅ Π½Π°Ρ€Π΅Π΄, стартирамС Docker, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

И Ρ‚Π°ΠΊΠ°... ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° остана... Имам учСстСн рСфлСкс. ΠŸΠΎΡΠΏΠ΅ΡˆΠΈΡ… към ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Π½Π° своята Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ правя Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ тСстовС, ΠΈΠΌΠ°ΠΌ Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Ρ€Π°Π· Π½Π° nginx ΠΈ влязох Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΈ Ρ‚ΡƒΠΊ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° /var/tmp ΠΏΡ€Π°Π²Π°Ρ‚Π° са настроСни Π½Π° root, root 777. ВоСст, ΡΡŠΡ‰ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΈ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π·Π°Π΄Π°ΠΌ Ρ€ΡŠΡ‡Π½ΠΎ. Но ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅ са ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ!

НавсякъдС бСшС използвана ЀБ xfs.

Π‘Ρ€Π°Π²Π½ΠΈΡ… Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

docker inspect my-nginx:12345

Всички Ρ…Π΅ΡˆΠΎΠ²Π΅ са ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ, Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΡΡŠΡ‰ΠΈΡ‚Π΅. Как Π½Π° ΡΡŠΡ€Π²Π΅Ρ€Π°, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° моята Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠ°. Π˜Π·Ρ‚Ρ€ΠΈΡ… локалния ΠΎΠ±Ρ€Π°Π· Π½Π° nginx ΠΈ Π³ΠΎ свалих ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΎΡ‚ registry, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎ Ρ€Π΅Π΄ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π΅ Π½Π° ΡΡŠΡ‰Π°Ρ‚Π° машина. И ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΡΡŠΡ‰ΠΈΡΡ‚β€¦ Π‘Π΅Π³Π° Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ ΠΌΠΈ ΠΎΠΊΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° Ρ‚Ρ€Π΅ΠΏΠ΅Ρ€ΠΈ.

Π’Π΅Ρ‡Π΅ Π½Π΅ помня ΠΊΠ°ΠΊΠ²ΠΈ мисли бяха Π² Π³Π»Π°Π²Π°Ρ‚Π° ΠΌΠΈ, освСн Π²ΠΈΠΊΠΎΠ²Π΅ β€žΠΠΠΠΠΠΠβ€œ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ. На ΡƒΠ»ΠΈΡ†Π°Ρ‚Π° Π΅ 4:00 часа ΠΏΡ€Π΅Π· Π½ΠΎΡ‰Ρ‚Π°, Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ… Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌ изходния ΠΊΠΎΠ΄ Π½Π° docker, с Ρ†Π΅Π» Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° Ρ…Π΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° слоСвСтС Π½Π° ΠΎΠ±Ρ€Π°Π·Π°. ΠžΡ‚Π²ΠΎΡ€ΠΈΡ… Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° кутия с Π΅Π½Π΅Ρ€Π³ΠΈΠΉΠ½Π° Π½Π°ΠΏΠΈΡ‚ΠΊΠ°. И Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΎΡΡŠΠ·Π½Π°Ρ…, Ρ‡Π΅ Ρ…Π΅ΡˆΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚Ρ‡ΠΈΡ‚Π° само Ρ„Π°ΠΉΠ»Π°, Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, Π½ΠΎ НЕ ΠŸΠ ΠΠ’Π Π”ΠžΠ‘Π’Π£ΠŸΠ! ВоСст, ΠΏΠΎ някакъв Π·Π°Π³Π°Π΄ΡŠΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ ΠΏΡ€Π°Π²Π°Ρ‚Π° бяха Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈ, ΠΊΠ°Ρ‚ΠΎ selinux Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½, acl Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚, sticky bit няма.

Π˜Π·Ρ‚Ρ€ΠΈΡ… локалния ΠΎΠ±Ρ€Π°Π·, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠ·Ρ‚Ρ€ΠΈΡ… ΠΎΠ±Ρ€Π°Π·Π° ΠΎΡ‚ docker registry ΠΈ Π³ΠΎ ΠΊΠ°Ρ‡ΠΈΡ… ΠΎΡ‚Π½ΠΎΠ²ΠΎ. И всичко Π·Π°Ρ€Π°Π±ΠΎΡ‚ΠΈ. Излиза, Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ ΠΏΡ€Π°Π²Π°Ρ‚Π° са сС Π½Π°Ρ€ΡƒΡˆΠΈΠ»ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π² локалния ΠΎΠ±Ρ€Π°Π·, Ρ‚Π°ΠΊΠ° ΠΈ Π² ΠΎΠ±Ρ€Π°Π·Π°, Π»Π΅ΠΆΠ°Ρ‰ Π² registry. ΠšΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΊΠ°Π·Π°Ρ…, ΠΏΠΎ Ρ€Π΅Π΄ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Ρ‚ΠΎΠΉ сС Π½Π°ΠΌΠΈΡ€Π°ΡˆΠ΅ Π½Π° ΡΡŠΡ‰Π°Ρ‚Π° машина. И слСдоватСлно Π² Π΅Π΄Π½Π° ΠΏΠ°ΠΏΠΊΠ° /var/lib/docker.

И Π² прСдвкусванСто Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ°, Π½Π΅ ΠΏΡ€ΠΎΠ±Π²Π°Ρ…ΠΌΠ΅ Π»ΠΈ Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ docker Π½Π° стария ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ β€” Π½Π΅, Π½Π΅ ΠΏΡ€ΠΎΠ±Π²Π°Ρ…ΠΌΠ΅, Π·Π° съТалСниС, обстоятСлствата Π½Π΅ позволяваха. Но ΠΌΠ½ΠΎΠ³ΠΎ исках Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°.

Π‘Π»Π΅Π΄ написванСто Π½Π° Ρ‚Π°Π·ΠΈ статия, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΈ сС струва ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π΅ изглСТдашС Ρ‚Π°ΠΊΠ°. ЧСстно Π³ΡƒΠ³Π»Π΅Ρ… ΠΈ Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ситуации.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚: ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π½Π΅ Ρ€Π°Π·Π±Ρ€Π°Ρ… =(

Ако някой Π·Π½Π°Π΅ ΠΈΠ»ΠΈ сС досСща Π·Π° възмоТни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” Ρ‰Π΅ бъда ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½, Π°ΠΊΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster