ذكري المظهر

كيفية الاتصال بحاوية عامل ميناء

تقرير احمد كيلاني وايلين يوسف - ميناء حاويات العقبة | Roya

تقرير احمد كيلاني وايلين يوسف - ميناء حاويات العقبة | Roya

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

Anonim

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

في هذا البرنامج التعليمي ، سنشرح كيف نعلق عملية التشغيل الرئيسية للحاوية وكيفية الحصول على قذيفة إلى حاوية قيد التشغيل.

نعلق على الحاوية

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

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

لفهم كيفية عمل أمر attach بشكل أفضل ، فلنشغل حاوية Nginx جديدة منفصلة باستخدام صورة Nginx الرسمية.

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

يخبر الخيار -p 8080:80 Docker بربط المنفذ 8080 من الحاوية بمنفذ 80 على الجهاز المضيف.

اذكر الحاويات لتتأكد من تشغيل الحاوية "my_nginx":

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx

إرفاق الحاوية باستخدام معرف الحاوية أو اسمها:

docker container attach my_nginx

يتم تعيين الأمر الافتراضي لصورة nginx التي يتم تنفيذها عند تشغيل الحاوية على CMD . عندما تقوم بتشغيل الأمر " attach فإن المحطة الطرفية تعلقها على عملية nginx

افتح 127.0.0.1:8080 في المستعرض الخاص بك ويمكنك مشاهدة إخراج عملية nginx في الوقت الحقيقي.

192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"

للوصول إلى سجلات الحاوية ، يجب أن تفضل استخدام أمر docker logs .

للفصل من الحاوية دون إيقافها ، استخدم مجموعة المفاتيح CTRL-p CTRL-q . الضغط على CTRL-c يوقف الحاوية.

إذا كانت العمليات قيد التشغيل التي تقوم بإرفاقها تقبل الإدخال ، فيمكنك إرسال إرشادات إليه.

الحصول على شل إلى الحاوية

يسمح لك الأمر docker exec بتشغيل الأوامر داخل حاوية التشغيل.

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

docker container run --name my_mysql -d mysql

سيؤدي هذا إلى إنشاء حاوية باسم "my_mysql".

لتنفيذ أمر داخل الحاوية ، قم بتشغيل الأمر التالي:

docker container exec -it my_mysql ls /var

يمثل الخيار -i تفاعليًا ، ويخبر Docker بتخصيص جهاز TTY مزيف. سيقوم الأمر ls جميع الملفات والدلائل الموجودة داخل الدليل /var في الحاوية:

backups cache lib local lock log mail opt run spool tmp

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

سيقوم الأمر أدناه بإنشاء جلسة Bash جديدة داخل الحاوية:

docker container exec -it my_mysql /bin/bash

سيتغير موجه الأوامر الخاص بك ، مما يشير إلى أنك تعمل الآن على وعاء الحاوية.

من هنا ، يمكنك تشغيل الأوامر بنفس الطريقة التي تعمل بها على أي خادم Linux آخر. على سبيل المثال ، للحصول على قائمة بمتغيرات البيئة الحالية ، اكتب env :

env

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

HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env

استنتاج

تسمح لك أوامر docker exec و docker attach بالاتصال بحاوية قيد التشغيل. للحصول على shell تفاعلي إلى حاوية ، استخدم الأمر exec لبدء جلسة shell جديدة. يقوم الأمر attach بإرفاق الجهاز الطرفي بحاوية جارية.

عامل ميناء