ذكري المظهر

تشغيل عامل الميناء مع أمثلة

دورة في عون في الوقاية و الامن (HSE)

دورة في عون في الوقاية و الامن (HSE)

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

Anonim

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

ينشئ الأمر docker run حاوية من صورة معيّنة ويبدأ الحاوية باستخدام أمر معطى. إنها واحدة من أولى الأوامر التي يجب أن تتعرف عليها عند بدء العمل مع Docker.

، سنستخدم صورة Nginx الرسمية لإظهار طرق مختلفة لتشغيل حاوية Docker.

تشغيل عامل الميناء

يأخذ الأمر docker run النموذج التالي:

docker run IMAGE

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

إذا لم يتم تحديد أي أمر ، فسيتم تنفيذ الأمر المحدد في إرشادات CMD أو ENTRYPOINT عند تشغيل الحاوية.

بدءًا من الإصدار 1.13 ، تمت إعادة هيكلة واجهة Docker CLI ، وتم تجميع جميع الأوامر تحت الكائن الذي تتفاعل معه.

نظرًا لأن الأمر " run يتفاعل مع الحاويات ، أصبح الآن أمرًا فرعيًا من docker container . بناء جملة الأمر الجديد هو كما يلي:

docker container run IMAGE

بناء الجملة السابق 1.13 لا يزال مدعومًا. تحت غطاء محرك السيارة ، أمر docker run هو اسم مستعار docker container run . يتم تشجيع المستخدمين على استخدام بناء جملة الأمر الجديد.

يمكن العثور على قائمة بجميع خيارات docker container run الميناء في صفحة وثائق Docker.

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

بشكل افتراضي ، عندما لا يتم توفير أي خيار لأمر docker run ، تبدأ عملية الجذر في المقدمة. هذا يعني أن المدخلات والمخرجات والخطأ القياسية من عملية الجذر مرتبطة بجلسة العمل النهائية.

docker container run nginx

سيتم عرض مخرجات عملية nginx على الجهاز. بما أنه لا توجد اتصالات بخادم الويب ، فإن الجهاز فارغ.

لإيقاف الحاوية ، قم بإنهاء عملية تشغيل Nginx بالضغط على CTRL+C

تشغيل الحاوية في وضع منفصل

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

استخدم الخيار -d لبدء حاوية منفصلة:

docker container run -d nginx

050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa

ستتوقف الحاوية المنفصلة عند إنهاء عملية الجذر.

يمكنك سرد الحاويات قيد التشغيل باستخدام الأمر docker container ls .

لتوصيل الجهاز الطرفي بعملية جذر الحاوية المنفصلة ، استخدم أمر docker container attach .

قم بإزالة الحاوية بعد الخروج

افتراضيًا ، عند خروج الحاوية ، يستمر نظام الملفات الخاص به في النظام المضيف.

--rm خيارات --rm الأمر --rm docker run بإزالة الحاوية عند خروجها تلقائيًا:

docker container run --rm nginx

قد لا تكون صورة Nginx هي أفضل مثال لتنظيف نظام ملفات الحاوية بعد خروج الحاوية. يستخدم هذا الخيار عادة في حاويات المقدمة التي تؤدي مهام قصيرة الأجل مثل الاختبارات أو النسخ الاحتياطي لقاعدة البيانات.

اضبط اسم الحاوية

في Docker ، يتم تحديد كل حاوية بواسطة UUID واسمها. بشكل افتراضي ، إن لم يكن مضبوطًا بشكل صريح ، يتم إنشاء اسم الحاوية تلقائيًا بواسطة البرنامج الخفي Docker.

استخدم خيار --name لتعيين اسم مخصص للحاوية:

docker container run -d --name my_nginx nginx

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

docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.

قم بتشغيل docker container ls -a لسرد جميع الحاويات ، وانظر أسمائها:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx

تعد الأسماء ذات مغزى مفيدة للإشارة إلى الحاوية الموجودة داخل شبكة Docker أو عند تشغيل أوامر CLI لرسو السفن.

منافذ حاوية النشر

افتراضيًا ، في حالة عدم نشر منافذ ، لا يمكن الوصول إلى العملية التي تعمل في الحاوية إلا من داخل الحاوية.

تعني منافذ النشر تعيين منافذ الحاوية لمنافذ الجهاز المضيف بحيث تتوفر المنافذ للخدمات خارج Docker.

لنشر منفذ ، استخدم خيارات -p كما يلي:

-p host_ip:host_port:container_port/protocol

  • إذا لم يتم تحديد host_ip ، host_ip تعيينه افتراضيًا على 0.0.0.0 . إذا لم يتم تحديد أي protocol ، فسيتم تعيين TCP بشكل افتراضي. لنشر منافذ متعددة ، استخدم خيارات متعددة الصفحات.

لتعيين منفذ TCP 80 (nginx) في الحاوية إلى المنفذ 8080 على واجهة المضيف المحلي ، يجب تشغيل:

docker container run --name web_server -d -p 8080:80 nginx

يمكنك التحقق من نشر المنفذ عن طريق فتح http://localhost:8080 في متصفحك أو تشغيل الأمر curl التالي على مضيف Docker:

curl -I

سيظهر الإخراج بشيء من هذا القبيل:

HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes

مشاركة البيانات (وحدات التخزين المتزايدة)

عند إيقاف حاوية ، تتم إزالة جميع البيانات التي تم إنشاؤها بواسطة الحاوية. وحدات التخزين Docker هي الطريقة المفضلة لجعل البيانات قائمة ومشاركتها عبر حاويات متعددة.

لإنشاء وإدارة وحدات التخزين ، استخدم خيارات -p كما يلي:

-v host_src:container_dest:options

  • يمكن أن يكون host_src مسارًا مطلقًا لملف أو دليل على المضيف أو وحدة تخزين مسماة. container_dest هي المسار المطلق لملف أو دليل على الحاوية. يمكن أن تكون rw (للقراءة-الكتابة) و ro (للقراءة فقط)). إذا لم يتم تحديد أي خيار ، rw تعيينه افتراضيًا إلى rw .

لشرح كيفية عمل ذلك ، فلنقم بإنشاء دليل على المضيف ووضع ملف index.html فيه:

mkdir public_html echo "Testing Docker Volumes" > public_html/index.html

بعد ذلك ، قم بتحميل دليل public_html في /usr/share/nginx/html في الحاوية:

docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx

بدلاً من تحديد المسار المطلق للدليل public_html ، نستخدم الأمر $(pwd) ، الذي يطبع دليل العمل الحالي.

الآن ، إذا كتبت http://localhost:8080 في متصفحك ، سترى محتويات ملف index.html . يمكنك أيضا استخدام curl :

curl

Testing Docker Volumes

تشغيل الحاوية بشكل تفاعلي

عند التعامل مع العمليات التفاعلية مثل bash ، استخدم الخيارين -i و -t لبدء تشغيل الحاوية.

-it خيارات -it Docker الاحتفاظ بالإدخال القياسي الموصول بالجهاز وتخصيص صورة زائفة:

docker container run -it nginx /bin/bash

سيتم إرفاق غلاف Bash shell الخاص بالحاوية الطرفية ، وسوف يتغير موجه الأوامر:

root@1da70f1937f5:/#

الآن ، يمكنك التفاعل مع غلاف الحاوية وتشغيل أي أمر بداخلها.

في هذا المثال ، قدمنا ​​أمرًا ( /bin/bash ) كوسيطة لأمر docker run الذي تم تنفيذه بدلاً من الأمر المحدد في Dockerfile.

استنتاج

Docker هو المعيار لتعبئة ونشر التطبيقات ومكون أساسي من عناصر CI / CD والأتمتة و DevOps.

يتم استخدام الأمر docker container run لإنشاء وتشغيل حاويات Docker.

عامل ميناء