ডকার কনটেইনার থেকে ডকার হোস্টে সংযুক্ত হচ্ছে


10

আমার একটি সেটআপ আছে যেখানে আমি আমার ওয়েবসাইটের সমস্ত অংশ ডকারের পাত্রে চালিত করি। আমার nginx যা পোর্ট 80 এবং 443 একটি পাত্রে চালিত শোনে।

363292a98545        scivm/nginx-django-scivmcom:latest   /usr/bin/supervisord   12 days ago         Ghost               0.0.0.0:40001->22/tcp, 88.198.57.112:443->443/tcp, 88.198.57.112:80->80/tcp     lonely_feynmann           

আমি অন্য ধারক একটি পরিষেবা একটি প্রক্সি সেট আপ করতে চান। এই ধারকটি হোস্টের 3000 পোর্টে আবদ্ধ:

b38c8ef72d0a        mazzolino/strider-dind:latest        wrapdocker /usr/bin/   41 minutes ago      Up 41 minutes       0.0.0.0:3000->3000/tcp, 22/tcp, 27017/tcp                                       distracted_einstein      

ডকার হোস্টে আমার iptables এর মতো দেখতে:

root@Ubuntu-1204-precise-64-minimal /var/run # iptables -L
Chain INPUT (policy ACCEPT) target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8000
DROP       all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

ধারকটির মধ্যে থেকে, iptables কনফিগারেশনের কারণে আমি হোস্ট মেশিনে 3000 বন্দরটিতে সংযোগ দিতে অক্ষম।

আমি পাবলিক ইন্টারনেট 3000 পোর্ট খুলতে চাই না।

3000 বন্দরে কনটেইনার এবং হোস্টের মধ্যে সরাসরি ব্রিজ খোলার কোনও উপায় আছে কি?

বা ডকার আইপি পরিসীমা থেকে গ্রহণ করার জন্য আমার আইপটিবলগুলি সংশোধন করা উচিত?

উত্তর:


5

আপনার যা দরকার তা হ'ল ডকারের লিঙ্ক ক্ষমতা [অবনমিত]

আপনি যে জটিল জটিল জিনিসগুলি করার চেষ্টা করেছিলেন সেগুলি থেকে কেবল মুক্তি পান এবং নামযুক্ত পাত্রে ব্যবহার শুরু করুন এবং তারপরে একে অপরের সাথে লিঙ্ক করুন।


আমি ডকার লিঙ্ক ক্ষমতাগুলি একবার দেখেছি তবে আমি যদি সঠিকভাবে বুঝতে পারি তবে এটিতে কিছু সমস্যা রয়েছে। 1. শিশুটি পুনরায় চালু করা হলে এটি একটি নতুন আইপি ঠিকানা পাবে। তারপরে নতুন পরিবেশের ভেরিলাবেস পেতে সেই সন্তানের সমস্ত পিতামাতাকে আবার চালু করা দরকার। ২. সংযোগগুলি করার জন্য সেই পরিবেশের পরিবর্তনশীলগুলি পড়তে আমার অ্যাপ্লিকেশনটিতে যুক্তি যুক্ত করতে হবে।
ব্যবহারকারী3133475

পুনরায় চালু করা ধারক ( docker restart your_container) এর আইপি ঠিকানা রাখা উচিত। আপনি যদি কোনও প্রদত্ত চিত্রের ভিত্তিতে নতুন ধারক চালান তবে এটি একটি নতুন আইপি ( docker run -d image command) পাবে।
ইলিয়াস প্রোবস্ট

2
এটি সত্যই ব্যবহৃত হত, তবে কমপক্ষে ডকার 1.0 হিসাবে একটি "ডকার পুনঃসূচনা" ধারকটিকে একটি নতুন আইপি ঠিকানা দেয়। এটিকে কিছু স্ক্রিপ্টগুলিতে আঘাত করুন যা আইপি পরিবর্তন না করার পূর্ববর্তী আচরণের উপর নির্ভর করে।
জামশিদ

1
যদিও আমি মনে করি এটি সম্ভবত ওপি'র পক্ষে সঠিক জিনিস, আমি এখানে প্রশ্নের উত্তর হিসাবে রেখেছি looking যেমন হোস্টে কোনও পরিষেবার সাথে কীভাবে লিঙ্ক করবেন।
mc0e

2

ইলিয়াসের উত্তর সঠিক, তবে লিঙ্কটি দীর্ঘ এবং বিভ্রান্তিকর। এখানে একটি সাধারণ সারসংক্ষেপ:

প্রথমে এর সাথে লিঙ্ক করার জন্য ধারকটি চালান এবং নাম দিন:

sudo docker run -d --name db training/postgres

তারপরে অন্য ধারকটি চালান, এটি প্রথম পাত্রে যুক্ত করুন:

sudo docker run -d -P --name web --link db:db training/webapp python app.py

প্রথম ধারক থেকে দ্বিতীয় ধারকটির লিঙ্কটি .োকানো হয়েছে /etc/hosts। সুতরাং আপনি এটি হোস্টনামের মতো ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:

sudo docker run --name web --link db:db training/webapp ping db
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.