انڈروئد

ڈوکر کنٹینر سے کیسے جڑیں

À ú ú ú ù, À ú ú ú ù

À ú ú ú ù, À ú ú ú ù

فہرست کا خانہ:

Anonim

جب آپ یہ دیکھنا چاہتے ہیں کہ کنٹینر کے اندر کیا ہو رہا ہے تو چل رہے ڈوکر کنٹینر سے رابطہ قائم کرنا مددگار ثابت ہوتا ہے۔ اگر ڈوکر کنٹینر توقع کے مطابق کام نہیں کرتا ہے تو ، آپ کنٹینر سے منسلک ہوسکتے ہیں یا کنٹینر سے شیل حاصل کرسکتے ہیں اور ps یا top جیسے کمانڈ چلا سکتے ہیں۔ آپ کنٹینر میں داخل ہوسکتے ہیں ، نئے پیکیج انسٹال کرسکتے ہیں ، اوراس سے ایک نئی ڈوکر امیج بھی بنا سکتے ہیں۔

اس ٹیوٹوریل میں ، ہم اس بات کی وضاحت کریں گے کہ کنٹینر کے اہم چلنے والے عمل سے کیسے منسلک ہوں اور چلنے والے کنٹینر میں شیل کیسے حاصل کریں۔

ایک کنٹینر سے منسلک کریں

اگرچہ کسی کنٹینر میں ایک سے زیادہ عمل چلانا ممکن ہے ، لیکن زیادہ تر ڈاکر کنٹینر صرف ایک ہی عمل چلا رہے ہیں۔ کنٹینر شروع کرتے وقت عمل میں آنے والی کمانڈ ENTRYPOINT اور / یا RUN ہدایات کا استعمال کرتے ہوئے بیان کی گئی ہے۔

docker attach کمانڈ آپ کو اپنا ٹرمینل چلانے والے کنٹینر سے docker attach اجازت دیتا ہے۔ یہ اس وقت کارآمد ہے جب آپ یہ دیکھنا چاہتے ہیں کہ اصل وقت میں معیاری آؤٹ پٹ میں کیا لکھا ہے ، یا اس عمل کو باہمی طور پر قابو کرنا ہے۔

اس سے بہتر طریقے سے سمجھنے کے attach the کہ attach کمانڈ کیسے کام کرتی ہے آئیے ، Nginx آفیشل آفیش کا استعمال کرتے ہوئے ایک نیا الگ الگ Nginx کنٹینر چلائیں۔

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

-p 8080:80 کا اختیار ڈوکر سے کہتا ہے کہ بندرگاہ 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

کنٹینر کا ID یا نام استعمال کرتے ہوئے کنٹینر سے منسلک کریں:

docker container attach my_nginx

نینجیکس امیج کی ڈیفالٹ کمانڈ جو آپ کنٹینر چلاتے وقت چلائی جاتی ہے وہ CMD سیٹ ہے۔ جب آپ attach کمانڈ چلاتے ہیں تو آپ کا ٹرمینل nginx عمل سے منسلک ہوتا ہے۔

اپنے براؤزر میں 127.0.0.1:8080 کھولیں اور آپ نینیکس عمل کی پیداوار کو حقیقی وقت میں دیکھ سکتے ہیں۔

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" "-"

کنٹینر لاگز تک رسائی حاصل کرنے کے ل you آپ کو docker logs کمانڈ استعمال کرنے کو ترجیح دینی چاہئے۔

کنٹینر سے رکے بغیر اسے الگ کرنے کے CTRL-p CTRL-q ، CTRL-p CTRL-q کلید مرکب استعمال کریں۔ CTRL-c دبانے سے کنٹینر رک جاتا ہے۔

اگر چلنے والے عمل آپ ان پٹ کو قبول کرنے کے لئے جوڑ رہے ہیں تو ، آپ اسے ہدایت بھیج سکتے ہیں۔

ایک کنٹینر پر ایک شیل حاصل کریں

docker exec کمانڈ آپ کو چلنے والے کنٹینر کے اندر کمانڈ چلانے کی اجازت دیتا ہے۔

یہ دیکھنے کے لئے کہ exec کمانڈ کس طرح کام کرتی ہے اور کنٹینر شیل میں داخل ہونے کے لئے اسے کس طرح استعمال کیا جاسکتا ہے ، پہلے ، نیا کنٹینر شروع کریں۔ ہم باضابطہ ایس کیو ایل تصویر استعمال کریں گے:

docker container run --name my_mysql -d mysql

اس سے "my_mysql" نامی ایک کنٹینر تیار ہوگا۔

کنٹینر کے اندر کمانڈ پر عملدرآمد کرنے کے لئے درج ذیل کمانڈ کو چلائیں:

docker container exec -it my_mysql ls /var

-i آپشن انٹرایکٹو کے لئے ہے ، اور -t Docker کو چھدم ٹی ٹی وائی ڈیوائس مختص کرنے کو کہتا ہے۔ ls کمانڈ کنٹینر کی /var ڈائریکٹری کے اندر موجود تمام فائلوں اور ڈائریکٹریوں کو درج کرے گا۔

backups cache lib local lock log mail opt run spool tmp

کنٹینر پر شیل حاصل کرنے کے لئے ، یعنی کنٹینر کے اندر داخل ہونے کے لئے ، شیل بائنری عمل میں لاکر ایک نیا شیل سیشن شروع کریں۔ آپ sh ، bash ، یا کوئی دوسرا شیل استعمال کرسکتے ہیں جو تصویر میں شامل ہے۔

نیچے دی گئی کمانڈ کنٹینر کے اندر باش کا نیا سیشن تشکیل دے گی۔

docker container exec -it my_mysql /bin/bash

آپ کا کمانڈ پرامپٹ تبدیل ہوگا ، اس سے یہ ظاہر ہوتا ہے کہ اب آپ کنٹینر شیل پر کام کر رہے ہیں۔

یہاں سے ، آپ اسی طرح کمانڈز چلا سکتے ہیں جس طرح آپ کسی دوسرے لینکس سرور پر کرتے ہیں۔ مثال کے طور پر ، موجودہ ماحولیاتی متغیر کی فہرست حاصل کرنے کے لئے 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 کمانڈ آپ کو چلانے والے کنٹینر سے مربوط ہونے کی اجازت دیتے ہیں۔ کسی کنٹینر پر انٹرایکٹو شیل حاصل کرنے کے لئے ، نیا شیل سیشن شروع کرنے کے لئے exec کمانڈ استعمال کریں۔ attach کمانڈ آپ کے ٹرمینل کو چلانے والے کنٹینر سے جوڑتا ہے۔

گودی