ذكري المظهر

كيفية إزالة حاويات الإرساء والصور ووحدات التخزين والشبكات

حل مشكلة مدخل الذاكرة الخارجية للاب توب SD

حل مشكلة مدخل الذاكرة الخارجية للاب توب SD

جدول المحتويات:

Anonim

يتيح لك Docker إنشاء تطبيقات واختبارها ونشرها بشكل سريع كحاويات محمولة ذات اكتفاء ذاتي يمكن تشغيلها في أي مكان تقريبًا.

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

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

إزالة جميع الكائنات غير المستخدمة

سيؤدي أمر docker system prune إلى إزالة جميع الحاويات التي تم إيقافها وجميع الصور المتدلية وجميع الشبكات غير المستخدمة:

docker system prune

سيُطلب منك --force ، استخدم علامة -f أو -f علامة --force لتجاوز المطالبة.

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue?

docker system prune --volumes

WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all build cache Are you sure you want to continue? y

إزالة حاويات السفن

لا تتم إزالة حاويات --rm تلقائيًا عند إيقافها إلا إذا قمت ببدء تشغيل الحاوية باستخدام علامة - --rm .

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

لإزالة صورة Docker واحدة أو أكثر ، استخدم أمر docker container rm متبوعًا بمعرف الحاويات التي تريد إزالتها.

يمكنك الحصول على قائمة بجميع الحاويات عن طريق تمرير علامة -a إلى الأمر docker container ls :

docker container ls -a

يجب أن يبدو الإخراج بشيء من هذا القبيل:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cc3f2ff51cab centos "/bin/bash" 2 months ago Created competent_nightingale cd20b396a061 solita/ubuntu-systemd "/bin/bash -c 'exec …" 2 months ago Exited (137) 2 months ago systemd fb62432cf3c1 ubuntu "/bin/bash" 3 months ago Exited (130) 3 months ago jolly_mirzakhani

بمجرد أن تعرف CONTAINER ID الحاوية للحاويات التي تريد حذفها ، قم docker container rm إلى الأمر docker container rm . على سبيل المثال ، لإزالة الحاويتين الأولين المدرجة في الإخراج أعلاه تشغيل:

docker container rm cc3f2ff51cab cd20b396a061

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

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

قبل تنفيذ أمر الإزالة ، يمكنك الحصول على قائمة بجميع الحاويات غير المُوقفة (المُوقفة) التي ستتم إزالتها باستخدام الأمر التالي:

docker container ls -a --filter status=exited --filter status=created

لإزالة جميع الحاويات التي تم إيقافها ، استخدم الأمر docker container prune :

docker container prune

سيُطلب منك --force ، استخدم علامة -f أو -f علامة --force لتجاوز المطالبة.

WARNING! This will remove all stopped containers. Are you sure you want to continue? y

إزالة الحاويات باستخدام المرشحات

يسمح لك الأمر docker container prune بإزالة الحاويات استنادًا إلى الحالة باستخدام علامة التصفية - --filter التصفية.

في وقت كتابة هذا المقال ، كانت المرشحات المدعومة حاليًا هي until . يمكنك استخدام أكثر من مرشح باستخدام إشارات تصفية متعددة.

على سبيل المثال ، لإزالة جميع الصور التي تم إنشاؤها قبل أكثر من 12 ساعة ، قم بتشغيل:

docker container prune --filter "until=12h"

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

يمكنك الحصول على قائمة بجميع حاويات Docker على نظامك باستخدام الأمر docker container ls -aq .

لإيقاف جميع حاويات التشغيل ، استخدم الأمر docker container stop متبوعًا بقائمة بجميع معرفات الحاويات.

docker container stop $(docker container ls -aq)

بمجرد إيقاف جميع الحاويات ، يمكنك إزالتها باستخدام الأمر docker container rm متبوعًا بقائمة ID Container.

docker container rm $(docker container ls -aq)

إزالة صور عامل الميناء

إزالة صورة واحدة أو أكثر

لإزالة صورة أو أكثر من صور Docker ، استخدم أمر docker images ls للعثور على معرّف الصور التي تريد إزالتها.

docker image ls

يجب أن يبدو الإخراج بشيء من هذا القبيل:

REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 75835a67d134 7 days ago 200MB ubuntu latest 2a4cca5ac898 2 months ago 111MB linuxize/fedora latest a45d6dca3361 3 months ago 311MB java 8-jre e44d62cf8862 3 months ago 311MB

بمجرد تحديد موقع الصور التي تريد إزالتها ، مرر IMAGE ID بهم إلى الأمر docker image rm . على سبيل المثال ، لإزالة أول صورتين مدرجتين في الإخراج أعلاه تشغيل:

docker image rm 75835a67d134 2a4cca5ac898

Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container cd20b396a061 is using its referenced image 75835a67d134

إزالة الصور المتدلية

يوفر Docker أمر docker image prune يمكن استخدامه لإزالة الصور المتداعية وغير المستخدمة.

الصورة المتدلية هي صورة غير موسومة ولا تستخدمها أي حاوية. لإزالة نوع الصور المتدلية:

docker image prune

سيُطلب منك --force ، استخدم علامة -f أو -f علامة --force لتجاوز المطالبة.

WARNING! This will remove all dangling images. Are you sure you want to continue? y عند إزالة الصور المتدلية ، إذا لم يتم وضع علامة على الصور التي أنشأتها ، فستتم إزالتها أيضًا.

إزالة جميع الصور غير المستخدمة

لإزالة جميع الصور التي لم تتم الإشارة إليها بواسطة أي حاوية موجودة ، وليس فقط تلك المتدلية ، استخدم الأمر prune مع علامة -a :

docker image prune -a

WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? y

إزالة الصور باستخدام المرشحات

باستخدام الأمر docker image prune ، يمكنك أيضًا إزالة الصور استنادًا إلى شرط معين باستخدام علامة التصفية - --filter التصفية.

في وقت كتابة هذا المقال ، كانت المرشحات المدعومة حاليًا هي until . يمكنك استخدام أكثر من مرشح باستخدام إشارات تصفية متعددة.

على سبيل المثال ، لإزالة جميع الصور التي تم إنشاؤها قبل أكثر من 12 ساعة ، يجب تشغيل:

docker image prune -a --filter "until=12h"

إزالة وحدات التخزين عامل الميناء

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

لإزالة docker volume ls تخزين Docker واحدة أو أكثر ، استخدم الأمر docker volume ls للعثور على معرّف وحدات التخزين التي تريد إزالتها.

docker volume ls

يجب أن يبدو الإخراج بشيء من هذا القبيل:

DRIVER VOLUME NAME local 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163 local terano

بمجرد العثور على VOLUME NAME من وحدات التخزين التي تريد إزالتها ، قم docker volume rm إلى الأمر docker volume rm . على سبيل المثال ، لإزالة أول وحدة تخزين مدرجة في الإخراج أعلاه ، قم بتشغيل:

docker volume rm 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use -

إزالة جميع وحدات التخزين غير المستخدمة

لإزالة كافة وحدات التخزين غير المستخدمة ، استخدم الأمر docker image prune :

docker volume prune

سيُطلب منك --force ، استخدم علامة -f أو -f علامة --force لتجاوز المطالبة.

WARNING! This will remove all local volumes not used by at least one container. Are you sure you want to continue?

إزالة شبكات عامل الميناء

إزالة شبكة واحدة أو أكثر

لإزالة شبكة Docker واحدة أو أكثر ، استخدم الأمر docker network ls للعثور على معرف الشبكات التي تريد إزالتها.

docker network ls

يجب أن يبدو الإخراج بشيء من هذا القبيل:

NETWORK ID NAME DRIVER SCOPE 107b8ac977e3 bridge bridge local ab998267377d host host local c520032c3d31 my-bridge-network bridge local 9bc81b63f740 none null local

بمجرد تحديد موقع الشبكات التي تريد إزالتها ، قم بتمرير NETWORK ID بهم إلى الأمر docker network rm . على سبيل المثال لإزالة الشبكة باسم تشغيل my-bridge-network :

docker network rm c520032c3d31

Error response from daemon: network my-bridge-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

إزالة جميع الشبكة غير المستخدمة

استخدم الأمر docker network prune لإزالة جميع الشبكات غير المستخدمة.

docker network prune

سيُطلب منك --force ، استخدم علامة -f أو -f علامة --force لتجاوز المطالبة.

WARNING! This will remove all networks not used by at least one container. Are you sure you want to continue?

إزالة الشبكات باستخدام المرشحات

باستخدام الأمر docker network prune يمكنك إزالة الشبكات استنادًا إلى الحالة باستخدام علامة التصفية - --filter التصفية.

في وقت كتابة هذا المقال ، كانت المرشحات المدعومة حاليًا هي until . يمكنك استخدام أكثر من مرشح باستخدام إشارات تصفية متعددة.

على سبيل المثال ، لإزالة جميع الشبكات التي تم إنشاؤها قبل أكثر من 12 ساعة ، قم بتشغيل:

docker network prune -a --filter "until=12h"

استنتاج

في هذا الدليل ، أظهرنا لك بعض الأوامر الشائعة لإزالة حاويات Docker والصور ووحدات التخزين والشبكات.

يجب عليك أيضا التحقق من الوثائق الرسمية عامل الميناء.

عامل ميناء