কীভাবে চলমান ডকারের ধারক আইপি ঠিকানা পাবেন


96

আমি ম্যাকের জন্য ডকার ব্যবহার করছি। আমি একটি ডকার পাত্রে একটি নোডেজ ভিত্তিক মাইক্রোসার্চিস চালাচ্ছি। আমি ব্রাউজারের মাধ্যমে নোড মাইক্রোসার্ভেস পরীক্ষা করতে চাই। কীভাবে চলমান ডকারের ধারক আইপি ঠিকানা পাবেন?


উত্তর:


116

আপনি যদি আপনার হোস্ট থেকে পাত্রে পোর্ট মানচিত্র করতে না চান তবে আপনি ধারকটির জন্য সরাসরি ডকার রেঞ্জ আইপে অ্যাক্সেস করতে পারেন। এই সীমাটি ডিফল্টরূপে কেবলমাত্র আপনার হোস্ট থেকে অ্যাক্সেস করা হয়। আপনি আপনার ধারক নেটওয়ার্কের ডেটা যাচাই করতে পারেন:

docker inspect <containerNameOrId>

সম্ভবত ফিল্টার করা ভাল:

docker inspect <containerNameOrId> | grep '"IPAddress"' | head -n 1

সাধারণত, ডিফল্ট ডকার আইপি পরিসীমা হয় 172.17.0.0/16। আপনার হোস্ট হওয়া উচিত172.17.0.1 এবং 172.17.0.2যদি সবকিছু স্বাভাবিক থাকে এবং আপনি কোনও বিশেষ নেটওয়ার্ক বিকল্প নির্দিষ্ট না করেন তবে আপনার প্রথম ধারকটি হওয়া উচিত ।

"বাশ ট্রিকিং" এর পরিবর্তে ডকার বৈশিষ্ট্যগুলি ব্যবহার করে আরও একটি মার্জিত উপায় সম্পাদনা করুন :

docker inspect -f "{{ .NetworkSettings.IPAddress }}" <containerNameOrId>

7
আপনি অভ্যন্তরীণ আইপি সম্পর্কে কথা বলছেন, এবং এটি হাতছাড়া প্রশ্নটির সাথে কোনও সম্পর্ক নেই। আপনার উত্তর পাঠকের জন্য কেবল বিভ্রান্তি সরবরাহ করে। যেহেতু আইপি হ'ল মেশিনের আইপি যেখানে ডকার চলছে। যা ঠিক localhost:)
ডেভিড গাট্টি

আপনি ভুল. অপারেটিং সিস্টেমটি মাইক্রোসার্চিস সম্পর্কে কিছু নির্দিষ্ট করে দেয় নি অবশ্যই বাইরে থেকে অ্যাক্সেসযোগ্য হবে। তিনি কেবল "ব্রাউজারের মাধ্যমে টেস্ট নোড মাইক্রোসার্চিস" বলেছিলেন এবং http://172.17.0.2:anyPortএটি হোস্টের কাছ থেকে আমার প্রস্তাবিত পদ্ধতিতে করা যেতে পারে । অবশ্যই যদি আপনি হোস্টে লোকালহোস্ট ব্যবহার করে এটি অ্যাক্সেস করতে চান তবে আপনাকে অবশ্যই পোর্টগুলি মানচিত্র করতে হবে। ওপি কী চায় তা দেখবে।
অস্কারআকাএলভিস

4
আপনি বলছেন যে আপনি হোস্ট থেকে কনটেইনারটির অভ্যন্তরীণ আইপিটি অ্যাক্সেস করতে পারবেন? এটি শারীরিক অসম্ভব, এটি সম্পূর্ণ আলাদা একটি নেটওয়ার্ক। কেবলমাত্র আমি যাচাই করেছি এবং হ্যাঁ, আমি আমার ডকারের ধারকটির 172.17.0.7 অ্যাক্সেস করতে পারি না, তবে আমি যদি আমার হোস্ট মেশিনটি একটি নেটওয়ার্ক স্ক্যানার দিয়ে স্ক্যান করি তবে আমার সমস্ত ডকার প্রার্থী দেখতে পারা উচিত, এবং এটি কেস নয় case আবার। আমি জানি যে এটি কাজ করা উচিত নয়, আপনি যা বলেছিলেন তা পরীক্ষা করে দেখলাম (আপনি কখনই জানেন না) এবং এটি কাজ করছে না। সুতরাং সম্ভবত আপনার ব্যাখ্যা একটি মূল অংশ অনুপস্থিত?
ডেভিড গাট্টি

ধারকগুলি হোস্ট থেকে অ্যাক্সেসযোগ্য। নিজে চেষ্টা করে দেখুন ... আমি আপনাকে কিছু ইঙ্গিত দেব। 1. একটি রান পাত্রে ডাউনলোড docker run --name struts --rm -i tomcatকরুন : 2. আপনার ধারক আইপি পান (যদি আপনার কেবল একটি থাকে): docker inspect struts | grep '"IPAddress"' | head -n 13. এটি হোস্টের ব্রাউজারে খুলুন http://x.x.x.x:8080। আপনি অ্যাপাচি টমক্যাট ডিফল্ট পৃষ্ঠাটি দেখতে পারেন।
অস্কারআলাকিস


22

--formatপরিবর্তে পুরো ধারক তথ্য কেবল আইপি ঠিকানা পেতে বিকল্প ব্যবহার করুন :

sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER ID>

4
উইন্ডোজ হোস্টগুলিতে একক উদ্ধৃতির পরিবর্তে ডাবল কোট ব্যবহার করুন। উদাহরণস্বরূপ sudo ডকার পরিদর্শন - ফর্ম্যাট "{work। নেট ওয়ার্কসেটিংস.আইপি অ্যাড্রেস} <" <কনটেইনার আইডি বা নাম> তথ্যসূত্র: লিংক
ভিনিত সাজওয়ান

4
ধারক সম্পর্কে তথ্যের নতুন ফর্ম্যাট এখানে
ইগোর

20

আধুনিক ডকার ইঞ্জিনগুলির জন্য এই আদেশটি ব্যবহার করুন:

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

এবং পুরানো ইঞ্জিনগুলির জন্য ব্যবহার করুন:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id

মূল ওপি অঞ্চলে @ সন্যাশ আপ দ্বারা মন্তব্য এবং লিঙ্কযুক্ত হিসাবে
জেসি চিশল্ম

টেমপ্লেট বিশ্লেষণ ত্রুটি: টেমপ্লেট: 1: কমান্ডে অপ্রত্যাশিত অনাবৃত কর্ম
gMLvsv


5

আপনি পতাকাটি দিয়ে আপনার ধারকটি শুরু করতে পারেন -P। এটি আপনার চিত্রের উন্মুক্ত বন্দরে একটি এলোমেলো বন্দর "বরাদ্দ করে"।

সঙ্গে docker port <container id>আপনি এলোমেলোভাবে choosen বন্দর দেখতে পারেন। অ্যাক্সেস তারপর সম্ভব হয় localhost:port


2

আমার ক্ষেত্রে, নীচে ম্যাক উপর কাজ করেছে :

আমি সরাসরি ম্যাকের ধারক আইপিগুলিতে অ্যাক্সেস করতে পারি না। আমাকে localhostপোর্ট ফরওয়ার্ডিং সহ ব্যবহার করতে হবে , উদাহরণস্বরূপ যদি পোর্টটি 8000 হয় তবেhttp://localhost:8000

Https://docs.docker.com/docker- for- mac/ networking/ ##-limitations- use- cases- and- workarounds দেখুন

আসল উত্তরটি ছিল: https://github.com/docker/for-mac/issues/2670#issuecomment-371249949


-3

আপনি সেই হোস্ট মেশিনের বাইরে থেকে ডকারের আইপি অ্যাক্সেস করতে পারবেন না। আপনার ব্রাউজারটি যদি অন্য কোনও মেশিনে থাকে তবে -p 8080:8080কমান্ড চালানোর জন্য হোস্ট পোর্টটিকে ধারক পোর্টে মানচিত্র করা আরও ভাল ।

পাসিং -pআপনি ধারক পোর্ট হোস্ট বন্দর ম্যাপ করতে পারেন এবং একটি প্রক্সি মনোনীত ধারক পোর্ট বললেন হোস্ট পোর্টের জন্য সব traffix ফরোয়ার্ড করতে সেট করা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.