كيفية إزالة صور Docker وحاوياته وأجلدته

مقدمة

دوكر يجعل من السهل لف تطبيقاتك وخدماتك في حاويات حتى تتمكن من تشغيلها في أي مكان. ومع ذلك، أثناء العمل مع دوكر، من السهل أيضًا تراكم عدد كبير من الصور والحاويات وحجوم البيانات غير المستخدمة التي تشوش على الناتج وتستهلك مساحة القرص.

يوفر لك دوكر جميع الأدوات التي تحتاجها لتنظيف نظامك من سطر الأوامر. يوفر هذا الدليل بشكل ورقة مرجعية سريعة للأوامر التي تكون مفيدة لتحرير مساحة القرص والحفاظ على تنظيم نظامك من خلال إزالة الصور والحاويات والأحجام غير المستخدمة في دوكر.

كيفية استخدام هذا الدليل:

  • هذا الدليل بتنسيق ورقة الغش مع مقاطع أمر سطر الأوامر المستقلة.
  • انتقل إلى أي قسم يكون ذا صلة بالمهمة التي تحاول إتمامها.

ملاحظة: يتوفر بناء الجملة التبديلي للأوامر، الأمر $(الأمر)، المستخدم في الأوامر في العديد من القواقع الشهيرة، مثل باش، زدش، و ويندوز باورشيل. إذا كنت ترغب في طريقة بنقرة واحدة لنشر تطبيق دوكر على خادم حي، فانظر إلى منصة DigitalOcean App.

إذا كنت ترغب في طريقة واحدة نقرة لنشر تطبيق Docker على خادم حي، فلتحقق من منصة تطبيقات DigitalOcean.

مسح جميع الصور والحاويات والحجز والشبكات غير المستخدمة أو المعوية

توفر Docker أمرًا واحدًا يمكن أن ينظف أي موارد – الصور والحاويات والأوعية والشبكات – التي هي معوية (غير معروفة أو غير مرتبطة بحاوية):

docker system prune

لإزالة أيضًا أي حاويات متوقفة وجميع الصور غير المستخدمة (ليس فقط الصور المعوية) ، أضف علامة -a إلى الأمر:

docker system prune -a

إزالة الصور Docker

إزالة صورة معينة أو أكثر

لاستخدام الأمر docker images مع علامة التبويب -a لتحديد معرّف الصور التي ترغب في إزالتها. سيظهر لك كل صورة، بما في ذلك طبقات الصورة المتوسطة. عندما تحدد الصور التي تريد حذفها، يمكنك تمرير معرّفها أو علامة التجزئة لـ docker rmi:

قائمة:

docker images -a

إزالة:

docker rmi Image Image

ملاحظة: علامة التبويب -a أو --all في الأمر docker images يعرض جميع صور الدوكر، بما في ذلك الطبقات المتوسطة التي لا تشير إليها أي علامات تجزئة. بشكل افتراضي، يظهر docker images فقط الصور التي لها على الأقل علامة تجزئة واحدة. ومع ذلك، قد يكون هناك بعض الصور بدون أي علامات تجزئة تستهلك مساحة القرص على النظام. يمكن أن تكون علامة التبويب -a مفيدة في تحديد الصور التي يمكن تنظيفها لتوفير مساحة القرص. عند استخدامها مع الأمر docker rmi، يمكن استخدام علامة التبويب -f أو --force لإزالة الصور بدون علامات تجزئة.

إزالة صور Docker المعوقة

تتكون صور Docker من طبقات متعددة. الصور المعوقة هي الطبقات التي ليس لها علاقة بأي صور مسمّاة. لا تخدم غرضًا وتستهلك مساحة القرص. يمكن تحديدها بإضافة علامة التصفية -f بقيمة dangling=true إلى الأمر docker images. عندما تكون متأكدًا من رغبتك في حذفها، يمكنك استخدام الأمر docker image prune:

ملاحظة: إذا قمت بإنشاء صورة دون وضع علامة عليها، ستظهر الصورة في قائمة الصور المعلقة لأنها ليست لها ارتباط بصورة موسومة. يمكنك تجنب هذا الوضع عن طريق توفير علامة عند إنشاء الصورة، ويمكنك بعد ذلك وضع علامة على الصورة بشكل رجعي باستخدام الأمر docker tag.

القائمة:

docker images -f dangling=true

إزالة:

docker image prune

إزالة الصور وفقًا لنمط

يمكنك العثور على جميع الصور التي تتطابق مع نمط ما باستخدام مزيج من docker images و grep. بمجرد أن تكون راضيًا، يمكنك حذفها باستخدام awk لتمرير المعرفات إلى docker rmi. يرجى ملاحظة أن هذه الأدوات ليست مزودة من قبل Docker وقد لا تكون متاحة على جميع الأنظمة:

القائمة:

docker images -a |  grep "pattern"

إزالة:

docker images -a | grep "pattern" | awk '{print $1":"$2}' | xargs docker rmi

إزالة جميع الصور

يمكن عرض جميع صور Docker على النظام عن طريق إضافة -a إلى أمر docker images. بمجرد التأكد من رغبتك في حذفها جميعًا، يمكنك إضافة علامة -q لتمرير معرف الصورة إلى docker rmi:

القائمة:

docker images -a

إزالة:

docker rmi $(docker images -a -q)

إزالة الحاويات

إزالة حاويات محددة أو أكثر

استخدم أمر docker ps مع العلامة -a لتحديد اسم أو معرف الحاويات التي ترغب في إزالتها:

القائمة:

docker ps -a

إزالة:

docker rm ID_or_Name ID_or_Name

إزالة حاوية عند الخروج

إذا كنت تعرف عند إنشاء حاوية أنك لن ترغب في الاحتفاظ بها بعد الانتهاء، يمكنك تشغيل docker run --rm لحذفها تلقائيًا عند الخروج:

تشغيل وحذف:

docker run --rm image_name

إزالة جميع الحاويات التي انتهت

يمكنك تحديد مواقع الحاويات باستخدام docker ps -a وتصفيتها حسب حالتها: created، restarting، running، paused، أو exited. لمراجعة قائمة الحاويات exited، استخدم العلم -f لتصفية بناءً على الحالة. عند التحقق من رغبتك في إزالة تلك الحاويات، استخدم -q لتمرير معرفات إلى أمر docker rm:

القائمة:

docker ps -a -f status=exited

إزالة:

docker rm $(docker ps -a -f status=exited -q)

إزالة الحاويات باستخدام أكثر من عامل تصفية

يمكن دمج مرشحات Docker عن طريق تكرار علامة المرشح مع قيمة إضافية. يؤدي هذا إلى قائمة من الحاويات التي تفي بأي من الشروط. على سبيل المثال، إذا كنت ترغب في حذف جميع الحاويات المعلمة بـ created (حالة يمكن أن تنتج عند تشغيل حاوية بأمر غير صالح) أو exited، يمكنك استخدام مرشحين:

القائمة:

docker ps -a -f status=exited -f status=created

إزالة:

docker rm $(docker ps -a -f status=exited -f status=created -q)

إزالة الحاويات وفقًا لنمط

يمكنك العثور على جميع الحاويات التي تطابق نمطًا باستخدام مزيج من docker ps و grep. عندما تكون راضيًا بأن لديك القائمة التي تريد حذفها، يمكنك استخدام awk و xargs لتوريد الهوية إلى docker rm. لاحظ أن هذه الأدوات لا تُقدم من قبل Docker وقد لا تكون متوفرة على جميع الأنظمة بالضرورة:

القائمة:

docker ps -a |  grep "pattern

إزالة:

docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm

توقف وأزل جميع الحاويات

يمكنك مراجعة الحاويات على نظامك باستخدام docker ps. إضافة العلم -a سيعرض جميع الحاويات. عندما تكون متأكدًا من رغبتك في حذفها، يمكنك إضافة العلم -q لتزويد معرفات الحاويات لأوامر docker stop و docker rm:

قائمة:

docker ps -a

حذف:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

إزالة الأحجام

أزل أو أكثر من الأحجام المحددة

استخدم الأمر docker volume ls لتحديد اسم الحجم أو الأحجام التي ترغب في حذفها. ثم يمكنك إزالة أحد أو أكثر من الأحجام باستخدام أمر docker volume rm:

قائمة:

docker volume ls

حذف:

docker volume rm volume_name volume_name

إزالة الأحجام المتدلية

نقطة الأحجام هي أن تكون مستقلة عن الحاويات، عند إزالة حاوية، لا يتم إزالة الحجم تلقائيًا في نفس الوقت. عندما يكون الحجم موجودًا ولا يكون متصلاً بأي حاويات، يُسمى بـ حجم متدلي. للعثور عليها وتأكيد رغبتك في إزالتها، يمكنك استخدام الأمر docker volume ls مع مرشح لتقييد النتائج إلى الأحجام المتدلية. عندما تكون راضيًا عن القائمة، يمكنك إزالتها جميعًا باستخدام docker volume prune:

القائمة:

docker volume ls -f dangling=true

الإزالة:

docker volume prune

إزالة حاوية وحجمها

إذا قمت بإنشاء حجم غير مسمى، يمكن حذفه في نفس الوقت مع الحاوية باستخدام العلامة -v. لاحظ أن هذا يعمل فقط مع الأحجام غير المسماة. عندما يتم إزالة الحاوية بنجاح، يتم عرض هويتها. لاحظ أنه لا يتم الإشارة إلى إزالة الحجم. إذا كان غير مسمى، يتم إزالته بصمت من النظام. إذا كان مسمى، يبقى موجودًا بصمت.

الإزالة:

docker rm -v container_name

الختام

هذا الدليل يغطي بعض الأوامر الشائعة المستخدمة لإزالة الصور والحاويات والأحجام مع Docker. هناك العديد من التركيبات والرائحة التي يمكن استخدامها مع كل واحدة. للحصول على دليل شامل حول ما هو متاح، انظر إلى توثيق Docker لـdocker system prune، docker rmi، docker rm، و docker volume rm. إذا كانت هناك مهام تنظيف شائعة ترغب في رؤيتها في الدليل، يرجى الطلب أو تقديم الاقتراحات في التعليقات.

للحصول على نظرة مفصلة على مكونات الحاوية Docker المختلفة، تفقد البيئة البيولوجية لـ Docker: مقدمة في المكونات الشائعة.

Source:
https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes