--net=host
বিকল্প নেটওয়ার্ক দৃষ্টিকোণ থেকে, Docker ধারক বর্ণন ভিতরে প্রোগ্রাম করতে চান তারা হোস্ট নিজেই দৌড়াচ্ছে ব্যবহার করা হয়। এটি কন্টেইনারটিকে স্বাভাবিকভাবে পাওয়ার চেয়ে বেশি নেটওয়ার্ক অ্যাক্সেসের অনুমতি দেয়।
সাধারণত আপনাকে কোনও পাত্রে হোস্ট মেশিন থেকে পোর্টগুলি ফরোয়ার্ড করতে হয়, তবে যখন পাত্রে হোস্টের নেটওয়ার্ক ভাগ করে নেওয়া হয়, কোনও নেটওয়ার্ক ক্রিয়াকলাপ হোস্ট মেশিনে সরাসরি ঘটে - ঠিক যেমন প্রোগ্রামটি কোনও অভ্যন্তরের পরিবর্তে হোস্টে স্থানীয়ভাবে চলমান ছিল would ধারক
যদিও এর অর্থ হ'ল আপনাকে আর পোর্টগুলি প্রকাশ করতে হবে না এবং সেগুলি কনটেইনার বন্দরগুলিতে মানচিত্র করতে হবে না, এর অর্থ হ'ল প্রতিটি কন্টেইনার শোনার পোর্টগুলি সামঞ্জস্য করতে আপনাকে আপনার ডকফায়াইলস সম্পাদনা করতে হবে, দ্বন্দ্ব এড়ানোর জন্য আপনার দুটি কন্টেইনার একই সাথে কাজ করতে পারে না to হোস্ট পোর্ট তবে এই বিকল্পটির আসল কারণ হ'ল এমন অ্যাপ্লিকেশনগুলি চালানো যা বন্দর পর্যায়ে কোনও ধারককে ফরোয়ার্ড করা শক্ত এমন নেটওয়ার্ক অ্যাক্সেসের প্রয়োজন।
উদাহরণস্বরূপ, আপনি যদি ডিএইচসিপি সার্ভার চালাতে চান তবে আপনাকে নেটওয়ার্কে ট্র্যাফিক ব্রডকাস্ট শুনতে এবং প্যাকেট থেকে ম্যাকের ঠিকানা বের করতে হবে। এই তথ্যটি পোর্ট ফরওয়ার্ডিং প্রক্রিয়া চলাকালীন হারিয়ে যায়, তাই ডকারের ভিতরে ডিএইচসিপি সার্ভার চালানোর একমাত্র উপায় হ'ল কনটেইনারটি চালানো --net=host
।
সাধারণভাবে বলতে গেলে --net=host
কেবল তখনই প্রয়োজন হয় যখন আপনি খুব সুনির্দিষ্ট, অস্বাভাবিক নেটওয়ার্কের প্রয়োজনে প্রোগ্রাম পরিচালনা করছেন।
শেষ অবধি, সুরক্ষার দৃষ্টিকোণ থেকে ডকারের পাত্রে অনেকগুলি বন্দর শুনতে পাওয়া যায়, যদিও তারা কেবল একটি একক বন্দরের বিজ্ঞাপন (প্রকাশ) করে। আপনি কেবলমাত্র একক প্রত্যাশিত বন্দরটি ফরোয়ার্ড করার সাথে সাধারণত এটি ঠিক আছে, তবে আপনি যদি ব্যবহার করেন --net=host
তবে সমস্ত কন্টেইনারের বন্দরগুলি হোস্টে শুনতে পাবে, এমনকি ডকফাইলে তালিকাভুক্ত নয় those এর অর্থ আপনার অনিয়মিতভাবে মেশিনে অতিরিক্ত পরিষেবাদি এক্সপোজ না করে তা নিশ্চিত করার জন্য আপনার ধারকটি খুব কাছাকাছি পরীক্ষা করতে হবে (বিশেষত এটি যদি আপনার না হয়, উদাহরণস্বরূপ কোনও সফ্টওয়্যার প্রকল্পের দ্বারা প্রদত্ত কোনও অফিসিয়াল)।
--net=host
ডকফাইফিলের ভিতরে বিকল্পটি যুক্ত করা কি সম্ভব ?