دليل صورة Docker: كيفية حذف صور Docker وإيقاف الحاويات وإزالة جميع وحدات التخزين

تم اعتماد Docker على نطاق واسع وهو وسيلة رائعة لنشر تطبيق على السحابة (أو بعض البنية التحتية الأخرى الجاهزة لـ Docker). كما أنه مفيد للتنمية المحلية. يمكنك بدء التطبيقات المعقدة بسرعة ، والتطوير بمعزل عن الآخرين ، مع الاحتفاظ بأداء جيد جدًا.

فيما يلي أهم الأوامر لاستخدام Docker في عملك اليومي بكفاءة.

قائمة بجميع صور عامل ميناء

docker images 

في حالتي ، لدي 3 صور مثبتة:

  • MySQL ، الإصدار 8.0.19 ، تم وضع علامة عليه كأحدث إصدار
  • وكاساندرا بأحدث إصدار.

للحصول على مزيد من المعلومات حول صورة ما ، يمكنك فحصها:

docker inspect mysql:latest

هذا سيعيد قائمة المعلومات. بدلاً من ذلك ، يمكنك أيضًا استخدام معرف الصورة للحصول على المعلومات:

docker inspect 3a5e53f63281

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

docker inspect --format='{{.RepoTags}} {{.Config.Image}}' 3a5e53f63281

إزالة صور Docker

يمكن إزالة صورة واحدة عن طريق:

docker rm mysql:latest

في حالتي ، لا تزال الصورة تحمل علامة mysql: 8.0.19 . لذلك ، لإزالته تمامًا ، أحتاج أيضًا إلى إزالة علامة إصدار أخرى:

docker rm mysql:8.0.19

لإزالة الصورة مباشرة ، من الأسهل حذف الصورة حسب معرف الصورة:

docker image rm 3a5e53f63281 -f

يفرض الخيار -f التنفيذ ، وإلا ستحصل على خطأ إذا تمت الإشارة إلى الصورة بأكثر من علامة واحدة.

ابدأ صورة Docker

يمكن بدء الصورة في المقدمة عن طريق:

docker run cassandra

إذا كانت الصورة غير موجودة ، فسيتم تنزيلها. يمكنك إيقاف التنفيذ عن طريق الضغط على CTRL + C . يمكنك أيضًا تشغيله في الخلفية عن طريق إضافة الخيار -d :

docker run -d mysql

إذا تم تشغيل الحاوية في الخلفية ، فستتلقى معرف الحاوية.

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

المنافذ الأمامية للحاوية

يمكنك إعادة توجيه المنافذ باستخدام الخيار -p إلى ، على سبيل المثال ، صفحة مكشوفة من الحاوية الخاصة بك:

docker run -p 8080:80 nginx

تعرض حاوية NGINX هذه خادم ويب على المنفذ 80. باستخدام -p 8080: 80 ، يتم إعادة توجيه المنفذ المحلي 8080 إلى منفذ الحاوية 80.

سجّل الدخول إلى حاوية

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

أولاً ، ابدأ الحاوية مفصولة وأعطها اسمًا:

docker run -d --name my_container nginx

سيؤدي هذا إلى إرجاع معرف الحاوية. يمكنك الآن تنفيذ صدفة في الحاوية وإرفاق المدخلات والمخرجات بها باستخدام الخيارين -i و -t :

docker exec -it my_container bash

بدلاً من اسم الحاوية ، يمكنك أيضًا استخدام معرف الحاوية الذي تم إرجاعه لجميع العمليات التالية. في بعض الأحيان ، لا يتوفر bash. لذلك ، يمكنك أيضًا محاولة إطلاق قذيفة أساسية:

docker exec -it my_container sh

قائمة الحاويات قيد التشغيل

بعد أن بدأت الحاوية ، يمكنك مشاهدة تنفيذ جميع الحاويات قيد التشغيل:

docker ps

من خلال إلحاق -a ، سيتم أيضًا إدراج الحاويات الخارجة:

docker ps -a

مشاركة مجلد محلي مع حاوية

Sometimes it is useful to sync files between the container and the local filesystem. You can do it by running a container and using the -v option. On Linux and macOS, you can share a local temporary folder with a container by:

docker run --name=my_container -d -v $(pwd)/tmp:/var/log/nginx -p 8080:80 nginx

On windows you can run:

docker run --name=my_container -d -v %cd%/tmp:/var/log/nginx -p 8080:80 nginx

Stop running containers

It is possible to stop a running container by:

docker stop my_container

Stopping a container stops all processes but keeps changes within the filesystem.

Start a stopped container

A stopped container can be started by:

docker start my_container

Remove a container

To remove a stopped container, you can execute:

docker rm my_container

To stop and remove the container in one command, you can add the force option -f.

docker rm -f my_container

Create a volume and share it with multiple containers

An independent volume named SharedData can be created by:

docker volume create --name SharedData docker run --name=my_container -d -v SharedData:/var/log/nginx -p 8080:80 nginx docker run --name=my_container_2 -d -v SharedData:/var/log/nginx -p 8080:80 nginx

Both containers will have a shared folder, and files will be synced between both containers.

Remove a volume

To remove a volume, all containers that use the volume need to be removed.

docker rm -f my_container docker rm -f my_container_2 docker volume rm SharedData

Remove stopped containers and unused images

A safe tidy-up command is:

docker system prune -a

Remove all unused volumes

All unmounted volumes can be removed by:

docker volume prune

Conclusion

Creating containers, logging into containers, forwarding ports, and sharing volumes are the most important commands of your Docker command line interface. They build the foundation of systems like Kubernetes and enable us to create and run applications in isolation.

I hope you enjoyed the article. If you like it and feel the need for a round of applause, follow me on Twitter.

أنا أحد مؤسسي منصة الرحلة الثورية الخاصة بنا والتي تسمى Explore The World. نحن شركة ناشئة تقع في دريسدن بألمانيا وسنستهدف السوق الألمانية أولاً. تواصل معي إذا كانت لديك ملاحظات وأسئلة حول أي موضوع.

سعيد عامل ميناء استكشاف :)

المراجع

  • وثائق سطر أوامر Docker

    //docs.docker.com/engine/reference/commandline/docker/