የዶክተር ማከማቻ ፍልሰት ችግር ታሪክ (የዶከር ስር)

ከሁለት ቀናት በፊት ባልበለጠ ጊዜ ውስጥ፣ ከአገልጋዮቹ በአንዱ ላይ የዶክተር ማከማቻ (ዶክተር ሁሉንም የመያዣ እና የምስል ፋይሎች የሚያከማችበት ማውጫ) ወደ የተለየ ክፍል እንዲዘዋወር ተወስኗል።
የበለጠ አቅም ነበረው። ስራው ቀላል መስሎ ነበር እናም ችግርን አስቀድሞ አልተናገረም ...

መጀመር

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 ባንዲራ ተጠቅመን ዴሞንን ወደ አዲስ መንገድ ለመጠቆም፣ ወይም የተጠቀምንበትን ሲስተምድ ውቅሮችን ይጠቀሙ። ወይም ሲምሊንክ። ስለዚህ ጉዳይ ብዙ ዝርዝር ውስጥ አልገባም, በይነመረብ ላይ ነው. ሙሉ Docker root ወደ አዲስ ቦታ ስለማንቀሳቀስ መመሪያዎች።

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 በስተቀር። ከከርቤሮስ እና ፍርድ ቤቶች ጋር የራሳችን nginx ግንባታ አለን። እና የመያዣ ምዝግብ ማስታወሻዎችን ማየት ለ /var/tmp መፃፍ እንደማይችል አመልክቷል - ፍቃድ ተከልክሏል። ቤተ መቅደሶቼን በጣቶቼ አንኳኳ እና ሁኔታውን ለመተንተን ሞከርኩ ... ይህ እንዴት ሊሆን ይችላል? የዶከር ምስሉ አልተለወጠም። ማውጫውን አሁን አንቀሳቅሰናል። ሁልጊዜ ይሠራ ነበር, እና እዚህ ለእርስዎ ነው ... ለሙከራ ያህል, በእጆቼ ወደ መያዣው ውስጥ ገባሁ እና የዚህን ማውጫ መብቶች ቀይሬያለሁ, እዚያም ነበሩ. ሥር፣ ሥር 755, ሰጠ ሥር፣ ሥር 777. እና ሁሉም ነገር ተጀመረ ... አንድ ሀሳብ በጭንቅላቴ ውስጥ ይጮህ ጀመር - የሆነ የማይረባ ነገር ... አሰብኩ ፣ ደህና ፣ ምናልባት አንድ ነገር ግምት ውስጥ አላስገባኝም ...

በዝውውር ወቅት የፋይሎችን የመዳረሻ መብቶች በፍቅር እንደያዝን ወሰንኩ። አፕሊኬሽኑን አቁመናል፣ ዶከር ዴሞን፣ አዲሱን ማውጫ ሰርዝ እና /var/lib/docker ማውጫን በመጠቀም ገልብጠናል። rsync -a.

አሁን ሁሉም ነገር ጥሩ ነው ብዬ አስባለሁ, የ Docker መተግበሪያን እናነሳ.

አአአድ... ችግሩ ቀረ... አይኔ ተንቀጠቀጠ። ወደ ቨርቹዋል ማሽኑ ኮንሶል በፍጥነት ሮጥኩ፣ የተለያዩ ሙከራዎችን እያካሄድኩ፣ ይህ የ nginx ምስል ነበረኝ፣ እና ወደ መያዣው ውስጥ ወጣሁ፣ እና እዚህ የ/var/tmp ማውጫ መብቶች ስር ናቸው፣ root 777. ማለትም፣ በእጅ ማዘጋጀት እንዳለብኝ ተመሳሳይ . ግን ምስሎቹ ተመሳሳይ ናቸው!

የ xfs ፋይል ስርዓት በሁሉም ቦታ ጥቅም ላይ ውሏል።

ትዕዛዙን ተጠቅሜ አነጻጽሬዋለሁ

docker inspect my-nginx:12345

ሁሉም ሃሽዎች አንድ ናቸው፣ ሁሉም አንድ ለአንድ ናቸው። ሁለቱም በአገልጋዩ እና በምናባዊ ማሽኑ ላይ። የአከባቢውን nginx ምስል ሰርዝ እና እንደገና ከመዝገቡ ውስጥ ጎትተውታል ፣ ይህም በብዙ ምክንያቶች በተመሳሳይ ማሽን ላይ ነው። ችግሩም ያው ነው...አሁን ሁለተኛ ዓይኔ እየተናነቀ ነው።

“AAAAAAAAAA” እና ሌሎች ነገሮችን ከመጮህ በተጨማሪ በጭንቅላቴ ውስጥ ምን ሀሳቦች እንዳሉ አላስታውስም። ከጠዋቱ 4 ሰአት ነበር እና የዶከር ምንጭ ኮድ የሃሺንግ ምስል ንብርብሮችን መርህ ለመረዳት ጥቅም ላይ ውሏል። ሦስተኛውን የኃይል መጠጥ ጣሳ ተከፈተ። እና በመጨረሻ ሀሺንግ ፋይሉን ፣ ይዘቱን ፣ ግን ያገናዘበ እንደሆነ ገባኝ። የመድረስ መብቶች አይደሉም! ያም ማለት በሆነ ሚስጥራዊ መንገድ መብቶቻችን ጠፍተዋል፣ ሴሊኑክስ ተሰናክሏል፣ acl ጥቅም ላይ አይውልም እና የሚጣብቅ ትንሽ ነገር የለም።

የአካባቢውን ምስል ሰርጬዋለሁ፣ እንዲሁም ምስሉን ከዶክተር መዝገብ ውስጥ ሰርዝኩት እና እንደገና ገፋሁት። እና ሁሉም ነገር ሠርቷል. በዝውውር ወቅት መብቶቹ ጠፍተዋል, በአካባቢው ምስል ውስጥ እና በምስሉ ውስጥ በመዝገቡ ውስጥ ተኝቷል. ቀደም ብዬ እንደተናገርኩት, በበርካታ ምክንያቶች, በተመሳሳይ መኪና ላይ ተቀምጧል. እና በውጤቱም, በአንድ ማውጫ /var/lib/docker.

እና የዶክተሮችን እይታ ወደ አሮጌው ማውጫ ለመመለስ ሞክረው እንደሆነ ጥያቄውን በመጠባበቅ - አይ ፣ አልሞከሩም ፣ ወዮ ፣ ሁኔታዎች አልፈቀዱም ። አዎ፣ እና በትክክል ለማወቅ ፈልጌ ነበር።

ይህን ጽሑፍ ከጻፍኩ በኋላ የችግሩ መፍትሔ ግልጽ ሆኖልኝ ነበር, ነገር ግን በመተንተን ጊዜ ግን እንዲህ አይመስልም ነበር. እንደ እውነቱ ከሆነ ጎግል አድርጌያለሁ እና ተመሳሳይ ሁኔታዎች አላገኘሁም።

ውጤት: ችግሩን ፈታሁት, ምክንያቱን አሁንም አልገባኝም = (

ማንም የሚያውቅ ፣ የሚገመተው ፣ የዚህ ችግር ሊሆኑ ስለሚችሉ ምክንያቶች ራዕይ ካለው ፣ በአስተያየቶቹ ውስጥ ከእርስዎ ለመስማት በጣም ደስ ብሎኛል!

ምንጭ: hab.com

አስተያየት ያክሉ