إعداد Docker الخاص بك لا يعمل بشكل صحيح - لا يوجد مساحة متبقية على الجهاز - هل من الآمن استخدام ./launcher cleanup؟

أواجه مشكلة تثبيت Docker الخاص بك لا يعمل بشكل صحيح بعد تشغيل ./launcher rebuild app.

الخطأ هو docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.

… أرى أن إحدى النصائح الشائعة لحل هذه المشكلة هي ./launcher cleanup، ولكن قبل أن أفعل ذلك، أود التحقق للتأكد من أنه آمن للاستخدام، حيث أنني أحصل على:
تحذير! سيؤدي هذا إلى إزالة جميع الحاويات المتوقفة.
تحذير! سيؤدي هذا إلى إزالة جميع الصور التي لا تحتوي على حاوية واحدة مرتبطة بها على الأقل.

هل هذا يساعد؟ أريد فقط التأكد من أنني لا أحذف أي شيء مهم هنا.

docker ps -a

docker images

إنه الخيار الموصى به بالتأكيد:

على الرغم من أنه إذا كنت ترغب في التأكد من أن موقعك يعمل قبل الضغط على الزر، يمكنك تشغيل ./launcher start app أولاً.

3 إعجابات

يؤدي تشغيل ./launcher start app إلى ظهور نفس الخطأ:

docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
See 'docker run --help'.
Your Docker installation is not working correctly

… لذلك لا أزال لا أعرف الإجابة على السؤال: هل من الآمن استخدام ./launcher cleanup عندما لا يكون الموقع قيد التشغيل؟

من لقطة الشاشة تحت ‘docker images’ في المنشور العلوي، يبدو أن هناك العديد من الصور القديمة، لكنني لا أعرف كيفية استهدافها تحديدًا للحذف، وما إذا كان هذا سيسبب أي مشاكل.

df

إذا كان حاوية Docker قيد التشغيل، فلن تحذف الحاوية. إذا لم تكن الحاوية قيد التشغيل، فستحذف الحاوية، ولكن يمكنك إعادة بناء حاوية جديدة باستخدام ./launcher rebuild app.

إعجابَين (2)

شكرًا لك، لكن الأمر لا يزال غير واضح تمامًا بالنسبة لي - دوكر ليس من نقاط قوتي، لذا لا أعرف ما إذا كان حذف حاوية وإعادة بنائها سيؤدي إلى إحداث أي مشاكل في موقعي… هل سيكون من الآمن تشغيل التطبيق أولاً عن طريق مسح بعض المساحة المحددة؟ مثل هذا:

  1. أولاً، قم بمسح بعض المساحة عن طريق استهداف صورة معينة لحذفها
  2. ثم قم بتشغيل ./launcher start app
  3. بمجرد تشغيل التطبيق: ./launcher cleanup

… لست متأكدًا مما إذا كان هذا الحذر ضروريًا. ربما يكون مجرد تشغيل ./launcher cleanup مباشرةً جيدًا ولن يحذف أي شيء مهم على الرغم من أن تطبيقي لا يعمل.

ولكن في حال كنت تعتقد أن النهج أعلاه يمكن أن يكون خيارًا: هل تعرف الأمر لاستهداف صورة معينة لحذفها (الخطوة 1 أعلاه)؟ انظر خياراتي للصور التي يجب حذفها أدناه.

ما سأفعله هو حذف نسخة احتياطية أو اثنتين أولاً؟ هذا يجب أن يمنحك مساحة كافية لكي تعمل الأشياء.

إذا قمت بتشغيل ./launcher start app ثم ./launcher cleanup فلن يتم حذف صورتك التي تعمل، وسيستمر موقعك في العمل أثناء تقدم عملية التنظيف.

إذا ارتكب شخص ما خطأ وحذف صورتك التي تعمل، وقمت بالترقية مؤخرًا، فهناك فرصة جيدة جدًا لأن تتمكن ببساطة من تشغيل ./launcher rebuild app وستكون في وضع جيد.

إعجاب واحد (1)

هل تعرف الأمر الخاص بحذف نسخة احتياطية أو اثنتين فقط؟ ربما شيء مثل ./launcher cleanup [id of image]؟

لا أعتقد أن ./launcher cleanup يزيل أي نسخ احتياطية، بل فقط الحاويات غير المستخدمة.

cd /var/discourse/shared/standalone/backups/default
ls 
rm file-to-delete
إعجاب واحد (1)

هل تم

cd /var/discourse/shared/standalone/backups/default
ls
rm oldest-file

تجربة ./launcher rebuild app

… فشلت بسبب مشكلة في الذاكرة كما كان من قبل

تجربة ./launcher cleanup

تم تنظيف 4 جيجابايت

تجربة ./launcher rebuild app

فشلت مع أخطاء جديدة.

تجربة ./discourse-doctor، في محاولة لمعرفة ما يحدث.

… يبدو أنه حلها؟
لا أدري لماذا. أود أن أفهم للمرة القادمة.

إذا واجهت خطأ في الذاكرة عند إعادة البناء، فسأضيف جيجابايت أخرى من مساحة التبديل، على الرغم من أن ذلك سيجعل مشكلة مساحة القرص لديك أضيق (يبدو أنك تستخدم قطرة صغيرة بها 25 جيجابايت من ذاكرة الوصول العشوائي، وهو ما يكفي بالكاد). سأقوم بتشغيل ./launcher cleanup قبل كل إعادة بناء، أو ربما لديك مجرد مجموعة من النسخ الاحتياطية ويجب عليك نقلها إلى S3 ([تكوين موفر تخزين كائنات متوافق مع S3 لتحميل الملفات](Configure an S3 compatible object storage provider for uploads --يمكنك القيام بالنسخ الاحتياطية فقط، وليس كل الأصول كما هو موضح هناك)).

كان الخطأ الثاني ليس خطأ في الذاكرة، ولكن لم أتمكن من تحديد الخطأ الجديد: ومن هنا جاء الطبيب.
على أي حال، قام ./discourse-doctor بحله، وكنت أتمنى فقط أن أعرف ما حدث بالفعل.
شكرا لمساعدتك!

إعجاب واحد (1)

كان تخميني أنك تخلط بين ذاكرة الوصول العشوائي (الذاكرة) ومساحة القرص. يمكن أن تأتي رسالة خطأ الذاكرة وتختفي، ورسالة الخطأ “error 127” غامضة ويسهل تفويتها.