ম্যাকের জন্য ডকার বিটা ব্যবহার করে আমার ধারকের আইপি নম্বরটি কী?


28

পূর্বে আমি ডকার টুলকিট ব্যবহার করছিলাম এবং docker-machine inspect <machine-name>ডকার মেশিনের আইপি সন্ধান করতে ব্যবহার করতে পারতাম যাতে পাতাগুলির মধ্যে থাকা পৃষ্ঠাগুলি দেখতে পেতেন।

আমি ডকার বিটা ক্লায়েন্টে (ম্যাকের জন্য) আপগ্রেড করেছি এবং পৃষ্ঠাগুলি কোথায় দেওয়া হচ্ছে তা খুঁজে পাচ্ছি না।

আমি ধরে নিয়েছি কারণ এটি ডকার খাঁটি এবং ডকার-মেশিন নয়, আমি লোকালহোস্টের উন্মুক্ত বন্দরগুলি দেখতে পাব। তবে সেগুলি খোলা নেই। এমনকি কাইটমেটিকের মাধ্যমেও আমি উন্মুক্ত বন্দরে (৮০) নেভিগেট করি তবে কিছুই দেখি না।

$ docker inspect tiny_cori | jq '.[].HostConfig.PortBindings'
{
  "80/tcp": [
    {
      "HostIp": "",
      "HostPort": "80"
    }
  ]
}

$ docker inspect tiny_cori | jq '.[].NetworkSettings.IPAddress'
"172.17.0.2"

$ curl 172.17.0.2:80/status
^C

$ docker exec -t -i tiny_cori /bin/bash

root@f1c303f60a15:/# curl localhost:80/status
{"status":"OK"}

root@f1c303f60a15:/# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
    link/sit 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1
    link/tunnel6 :: brd ::
4: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1
    link/gre6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
26: eth0@if27: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link
       valid_lft forever preferred_lft forever

172.17.0.2 আসলেই কি আমার ধারকটির আইপি? যদি তা না হয় তবে আমি আইপি কী তা জানতে পারি? বা আমার কোনও পোর্ট ম্যাপিং সমস্যা আছে?

উত্তর:


25

আপনি ধারকটির ভিতরে আইপি ঠিকানাটি দেখছেন যা 172.17.0.2 এবং কেবল ডকার পাত্রে (এবং তাদের মধ্যে) "ভিতরে" রয়েছে।

আপনি যে আইপি ঠিকানাটির সাথে সংযোগ রাখতে চান তা হ'ল আপনার হোস্ট মেশিনগুলির আইপি ঠিকানা। আপনার ম্যাকের উপর একটি আইফোনফিগ করুন এবং সঠিকটি সন্ধান করুন (সাধারণত 192.168.xy বা 10.xyz)। লোকালহোস্টেরও ধারকটির বাইরে থেকে কাজ করা উচিত।


5
কে এটি কমেছে তা নিশ্চিত নয় তবে এটি আসলে সঠিক উত্তর। ম্যাকের জন্য ডকারের সাথে, আলাদা মেশিনের আইপি অ্যাড্রেস সহ কোনও মধ্যস্থতাকারী ভিএম নেই। হোস্টটিকে আঘাত করা (আইপি বা লোকালহোস্টের মাধ্যমে) পোর্টগুলি সঠিকভাবে ম্যাপ করা না হওয়া পর্যন্ত অনুরোধগুলি ধারকটিতে ফরোয়ার্ড করা উচিত।
ডিএন জনসন

ধন্যবাদ। আমি বিভ্রান্ত হয়ে পড়েছিলাম কেন এটিকে নিম্নচাপ দেওয়া হয়েছিল (দুবার)। সম্ভবত কারণ এটি আসল উত্তর হিসাবে খুব সহজ বলে মনে হচ্ছে।
মিকেল কেজির

আমি এটাকে কম ভাবি নি। তবে আমার সন্দেহ আছে যে ব্যবহারকারীদের এমন একটি উপসেট আছে যারা, যে কারণেই হোক না কেন, এই সরল উত্তরটি কাজ করে না (বা করেনি)। আমি সঠিক হিসাবে চিহ্নিত করছি।
সেনেসো

2
ওয়েল হেরেস একটি আকর্ষণীয় জিনিস - আমি যখন স্ক্রিন কমান্ডের মাধ্যমে আমার এক্সএইচ ভি ভি তে যাই এবং লোকাল হোস্ট চালাও : 8080 - আমি একটি পাত্রে থেকে প্রতিক্রিয়া পাই। তবে আমি যদি ওএস এক্স টার্মিনালে একই কাজ করি - সংযোগ অস্বীকার করেছে। কীভাবে এটি ঘটতে পারে?
এমভিএমএন

1
পিএস এটি ডকর-রচনার মাধ্যমে তৈরি একটি ধারককে ঘটেছে।
এমভিএমএন

8

নিম্নলিখিত কমান্ডটি টাইপ করুন এবং আপনি আপনার ডকারের ধারক আইপি পাবেন

$docker inspect <docker-container-name>

নীচে স্ক্রোল করুন এবং আপনি " নেটওয়ার্কসেটেটিংস " এর অধীনে আইপি-ঠিকানা পাবেন


ধন্যবাদ. আমি এটি উল্লেখ করে অবহেলা করেছি যে আমি এটি চেষ্টা করেছি এবং এটি কার্যকর হয়নি। আমার প্রশ্ন আপডেট করা হয়েছে।
সেনেসো

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

6

ম্যাকের জন্য ডকার 127.0.0.1 আইপি ঠিকানায় চলে


এটি সম্পূর্ণরূপে কোনও ভ্রান্ত বক্তব্য নয়: পি
জোনাস

আসলে, এটি ছিল আমার সবচেয়ে সহজ উত্তর যা আমার সমস্যার সমাধান করেছিল।
জেমস

1

আইপি ঠিকানা স্পষ্টভাবে আউটপুট থেকে উল্লিখিত হয় docker ps

$ docker ps
CONTAINER ID        ... PORTS
c785a183b376        ... 0.0.0.0:80->80/tcp, 443/tcp

$ curl 0.0.0.0:80/status
{"STATUS":"OK"}

তদ্ব্যতীত, localhostহিসাবে একই হয় না0.0.0.0


5
০.০.০.০ এর অর্থ বর্তমান মেশিনে থাকা সমস্ত আইপি ঠিকানা এবং সাধারণত শোনাতে, সংযোগ না করার সময় ব্যবহৃত হয়। উপরের কার্লটি এমনকি কীভাবে কাজ করবে তা আমি বুঝতে পারি না।
মিকেল কেজির

2
০.০.০.০ হ'ল আইপি ঠিকানাটি পরিষেবাটি ধারকটিতে আবদ্ধ এবং এর অর্থ হোস্টটি এটি চালনার প্রেক্ষিতে কিছুই নয়। পোর্টস কলামের আউটপুট বলছে যে ধারকটির পোর্ট ৮০ (০.০.০.০.০৮০) স্থানীয়ভাবে ৮০ পোর্টে (৮০ / টিসিপি) ম্যাপ করা হয়েছে, পাশাপাশি স্থানীয়ভাবে পোর্ট ৪৪৩ রয়েছে।
কেভিন

1
না, এটি একই নয়, তবে নির্দেশিত হিসাবে, 0.0.0.0 কোনও আইপি ঠিকানা নয়, এটি শুনতে একটি সংকেত যে আমি লোকালহোস্ট সহ তাদের সমস্ত চাই। সংযোগের প্রসঙ্গে পরিষেবাগুলি নির্দিষ্ট আইপি (লোকালহোস্ট বা বাহ্যিক আইপি) এর সাথে আবদ্ধ না হলে সেগুলি একই।
গেরি গ্লিসন

0

আমি বিশ্বাস করি যে 127.0.0.1 লোকালহোস্টের জন্য।

আপনার ম্যাকটিতে চলমান ডকার আইডি পেতে। টার্মিনালে "ifconfig" চালান এবং ফলাফলটি এটি 127.0.0.1 ছাড়াও পাবেন

মূলত 192.168.xy এর মতো কিছু

আশা করি এটা সাহায্য করবে.

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