অ্যান্ড্রয়েড

ডকার পাত্রে কীভাবে সংযোগ স্থাপন করবেন

swivel carabiner hook

swivel carabiner hook

সুচিপত্র:

Anonim

যখন আপনি ধারকটির ভিতরে কী ঘটছে তা দেখতে চাইলে চলমান ডকার পাত্রে সংযোগ স্থাপন সহায়ক। যদি ডকার ধারকটি প্রত্যাশা অনুযায়ী কাজ না করে, আপনি ধারকটির সাথে সংযুক্ত করতে পারেন বা ধারকটিতে একটি শেল পেতে পারেন এবং ps বা top মতো কমান্ড চালাতে পারেন। আপনি ধারকটি প্রবেশ করতে, নতুন প্যাকেজ ইনস্টল করতে এবং এটি থেকে একটি নতুন ডকার চিত্র তৈরি করতে পারেন।

এই টিউটোরিয়ালে, আমরা কীভাবে ধারকটির মূল চলমান প্রক্রিয়াটি সংযুক্ত করতে হবে এবং চলমান ধারকটিতে শেল কীভাবে পাবেন তা ব্যাখ্যা করব।

একটি ধারক সংযুক্ত করুন

যদিও কোনও ধারকটিতে একাধিক প্রক্রিয়া চালানো সম্ভব, বেশিরভাগ ডক পাত্রে কেবল একটি একক প্রক্রিয়া চলছে। ENTRYPOINT শুরু করার সময় যে কমান্ডটি কার্যকর করা হয় তা ENTRYPOINT এবং / অথবা RUN নির্দেশ ব্যবহার করে নির্দিষ্ট করা হয়।

docker attach কমান্ড আপনাকে চলমান docker attach আপনার টার্মিনাল সংযুক্ত করার অনুমতি দেয়। আপনি যখন রিয়েল-টাইমে স্ট্যান্ডার্ড আউটপুটে লিখিত আছে তা দেখতে চান বা প্রক্রিয়াটিকে ইন্টারেক্টিভভাবে নিয়ন্ত্রণ করতে চান তখন এটি কার্যকর।

attach কমান্ড কীভাবে কাজ করে তা আরও ভালভাবে বোঝার জন্য আসুন অফিসিয়াল এনগিনেক্স চিত্রটি ব্যবহার করে একটি নতুন বিযুক্ত এনগিনেক্স ধারক চালাও।

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

ধারকটির আইডি বা নাম ব্যবহার করে পাত্রে সংযুক্ত করুন:

docker container attach my_nginx

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

ধারক লগগুলিতে অ্যাক্সেস পাওয়ার জন্য আপনাকে docker logs কমান্ডটি ব্যবহার করতে পছন্দ করতে হবে।

কনটেইনারটি বন্ধ না করেই আলাদা করতে, 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 একটি সিডো টিটিওয়াই ডিভাইস বরাদ্দ করতে বলে। 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 কমান্ডগুলি আপনাকে একটি চলমান docker attach সংযোগ করার অনুমতি দেয়। একটি ধারকটিতে একটি ইন্টারেক্টিভ শেল পেতে, নতুন শেল সেশন শুরু করতে exec কমান্ডটি ব্যবহার করুন। attach কমান্ডটি আপনার টার্মিনালটি একটি চলমান ধারককে attach

ডকশ্রমিক