ඩොකර් ගබඩා සංක්‍රමණ ගැටලුවේ ඉතිහාසය (ඩොකර් මූල)

දින කිහිපයකට පෙර, ඩොකර් ගබඩාව (ඩොකර් විසින් සියලුම බහාලුම් සහ රූප ගොනු ගබඩා කරන නාමාවලිය) වෙනම කොටසකට ගෙන යාමට එක් සේවාදායකයකින් තීරණය විය.
වැඩි ධාරිතාවක් තිබුණා. කාර්යය සුළුපටු බවක් පෙනෙන්නට තිබූ අතර කරදර ගැන පුරෝකථනය කළේ නැත ...

අපි පටන් ගනිමු:

1. අපගේ යෙදුමේ සියලුම බහාලුම් නවතා මරා දමන්න:

docker-compose down

බහාලුම් ගොඩක් තිබේ නම් සහ ඒවා විවිධ සංයුතියේ තිබේ නම්, ඔබට මෙය කළ හැකිය:

docker rm -f $(docker ps -q)

2. ඩොකර් ඩීමන් නවත්වන්න:

systemctl stop docker

3. නාමාවලිය අපේක්ෂිත ස්ථානයට ගෙන යන්න:

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

4. අපි ඩොකර් ඩීමන් ට කියනවා අලුත් ඩිරෙක්ටරිය බලන්න කියලා. විකල්ප කිහිපයක් තිබේ: එක්කෝ ඩීමන් නව මාර්ගයකට යොමු කිරීමට -g ධජය භාවිතා කරන්න, නැතහොත් අප භාවිතා කළ systemd configs. නැත්නම් සිම්ලින්ක් එකක්. මම මේ ගැන වැඩි විස්තරයක් නොකියමි, එය අන්තර්ජාලයේ ඇත. පූර්ණ ඩොකර් මූල නව ස්ථානයකට ගෙන යාම පිළිබඳ අත්පොත්.

5. ඩොකර් ඩීමන් ආරම්භ කර එය නිවැරදි ස්ථානයේ දිස්වන බවට වග බලා ගන්න:

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. පරීක්ෂා කරන්න

මෙන්න විනෝදය ආරම්භ වේ, DBMS, MQ, සියල්ල හොඳයි! දත්ත සමුදාය නොවෙනස්ව පවතී, සියල්ල ක්‍රියා කරයි ... nginx හැර. අපට Kerberos සහ ගණිකාවන් සමඟ අපගේම nginx ගොඩනැගීමක් ඇත. සහ බහාලුම් ලොග බැලීමෙන් එය /var/tmp වෙත ලිවිය නොහැකි බව පෙන්නුම් කරයි - අවසරය ප්‍රතික්ෂේප විය. මම මගේ ඇඟිලිවලින් මගේ පන්සල් දණ ගසා තත්වය විශ්ලේෂණය කිරීමට උත්සාහ කරමි ... මෙය කළ හැක්කේ කෙසේද? ඩොකර් රූපය වෙනස් වී නැත. අපි නාමාවලිය මාරු කළා. එය සැමවිටම ක්‍රියාත්මක විය, මෙන්න එය ඔබ වෙනුවෙන් ... අත්හදා බැලීම සඳහා, මම මගේ දෑතින් කන්ටේනරය තුළට ගොස් මෙම නාමාවලියෙහි අයිතිවාසිකම් වෙනස් කළෙමි, root, root 755, දුන්නා root, root 777. සෑම දෙයක්ම ආරම්භ විය ... මගේ හිසෙහි සිතුවිල්ලක් ඇසෙන්නට පටන් ගත්තේය - යම් ආකාරයක විකාරයක් ... මම හිතුවා, හොඳයි, සමහර විට මම යමක් ගණන් ගත්තේ නැහැ ...

මාරු කිරීමේදී ලිපිගොනු සඳහා ප්‍රවේශ අයිතිවාසිකම් සමඟ අපි ආදරයෙන් බැඳුණු බව මම තීරණය කළෙමි. අපි යෙදුම නවත්වා, ඩොකර් ඩීමන්, නව නාමාවලිය මකා දමා /var/lib/docker බහලුම භාවිතා කර පිටපත් කළෙමු rsync -a.

මම හිතන්නේ දැන් හැම දෙයක්ම හොඳයි, අපි Docker යෙදුම ඉහල දමමු.

Aaand... ප්‍රශ්නය එහෙමම තිබ්බා... මගේ ඇහැ ගැහුණා. මම මගේ අතථ්‍ය යන්ත්‍රයේ කොන්සෝලය වෙත දිව ගියෙමි, එහිදී මම විවිධ පරීක්ෂණ ක්‍රියාත්මක කරමි, මට මෙම nginx රූපය තිබුණි, සහ මම කන්ටේනරය තුළට නැග්ගා, සහ මෙහි /var/tmp නාමාවලියෙහි අයිතිය root, root 777 වේ. එනම්, මම අතින් සකස් කිරීමට සිදු වූවා සේම . නමුත් රූප සමාන වේ!

xfs ගොනු පද්ධතිය සෑම තැනකම භාවිතා විය.

මම විධානය භාවිතයෙන් සංසන්දනය කළෙමි

docker inspect my-nginx:12345

සියලුම හෑෂ් එක සමානයි, සියල්ල එකින් එක. සේවාදායකයේ සහ මගේ අතථ්‍ය යන්ත්‍රයේ දෙකම. මම දේශීය nginx රූපය මකා දමා එය නැවත රෙජිස්ට්‍රියෙන් ඇද ගත්තෙමි, එය හේතු ගණනාවක් එකම යන්ත්‍රයේ ඇත. අනික ප්‍රශ්නෙත් ඒකමයි... දැන් මගේ දෙවෙනි ඇහැ ගැහෙනවා.

"AAAAAAAAA" යනුවෙන් කෑගැසීමට අමතරව මගේ හිසෙහි තිබූ සිතුවිලි මොනවාදැයි මට තවදුරටත් මතක නැත. එය අලුයම 4 ට පසු වූ අතර, රූප ස්ථර හැෂ් කිරීමේ මූලධර්මය අවබෝධ කර ගැනීමට ඩොකර් මූල කේතය භාවිතා කරන ලදී. තුන්වෙනි ශක්තිජනක බීම කෑන් එක විවෘත කළා. අවසානයේ මට වැටහුණේ හැෂිං කිරීම ගොනුව, එහි අන්තර්ගතය පමණක් සැලකිල්ලට ගන්නා බවයි ප්‍රවේශ අයිතිවාසිකම් නොවේ! එනම්, කිසියම් අද්භූත ආකාරයකින් අපගේ අයිතිවාසිකම් අහිමි වී ඇත, selinux අක්රිය කර ඇත, acl භාවිතා නොකෙරේ, සහ ඇලෙන සුළු දෙයක් නොමැත.

මම දේශීය රූපය මකා, ඩොකර් රෙජිස්ට්‍රියෙන් රූපය මකා එය නැවත තල්ලු කළෙමි. ඒ වගේම හැම දෙයක්ම වැඩ කළා. මාරු කිරීමේදී දේශීය රූපය තුළ සහ රෙජිස්ට්‍රියේ ඇති රූපය තුළ අයිතිවාසිකම් අහිමි වූ බව පෙනේ. මම දැනටමත් පවසා ඇති පරිදි, හේතු ගණනාවක් නිසා එය එකම මෝටර් රථයේ පිහිටා ඇත. සහ ප්‍රතිඵලයක් ලෙස, එක් නාමාවලියක /var/lib/docker.

ඔවුන් ඩොකර්ගේ බැල්ම පැරණි නාමාවලිය වෙත ආපසු යාමට උත්සාහ කළේද යන ප්‍රශ්නය අපේක්ෂාවෙන් - නැත, ඔවුන් උත්සාහ කළේ නැත, අහෝ, තත්වයන් එයට ඉඩ දුන්නේ නැත. ඔව්, මට ඇත්තටම එය තේරුම් ගැනීමට අවශ්‍ය විය.

මෙම ලිපිය ලිවීමෙන් පසු, ගැටලුවට විසඳුම මට පැහැදිලිව පෙනේ, නමුත් විශ්ලේෂණය කරන විට එය එසේ නොවීය. අවංකවම, මම ගූගල් කළ අතර සමාන තත්වයන් සොයා ගත්තේ නැත.

ප්‍රතිඵලය: මම ගැටලුව විසඳුවා, හේතුව මට තවම තේරෙන්නේ නැහැ =(

මෙම ගැටලුවට හේතු විය හැකි හේතු පිළිබඳව යමෙකු දන්නේ නම්, අනුමාන කරන්නේ නම්, දර්ශනයක් තිබේ නම්, අදහස් දැක්වීමේදී ඔබෙන් ඇසීමට ලැබීම ගැන මම අතිශයින් සතුටු වෙමි!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න