অপারেটিং-সিস্টেম-স্তরের ভার্চুয়ালাইজেশনের লক্ষ্য এবং নকশা থেকে প্রস্তাবটি আসে
কনটেইনারগুলি অন্যদের জন্য নিজস্ব ব্যবহারকারীর স্থান এবং ফাইল সিস্টেমটি দিয়ে একটি প্রক্রিয়া আলাদা করার জন্য ডিজাইন করা হয়েছে ।
এটি একটি যৌক্তিক বিবর্তন chroot
যার একটি বিচ্ছিন্ন ফাইল সিস্টেম সরবরাহ করছিল, পরবর্তী পদক্ষেপটি ছিল মেমরির ওভাররাইটগুলি এড়াতে অন্যদের থেকে প্রক্রিয়াগুলি বিচ্ছিন্ন করা এবং একই সংস্থান (উদাহরণস্বরূপ টিসিপি পোর্ট 8080) বিরোধ ছাড়াই একাধিক প্রক্রিয়াগুলি ব্যবহার করার অনুমতি দেওয়া হয়েছিল।
সংস্করণ বিবাদ সম্পর্কে চিন্তা না করে প্রক্রিয়াটির জন্য প্রয়োজনীয় লাইব্রেরিটি প্যাকেজ করা কোনও ধারকটির মূল আগ্রহ। আপনি যদি একই ইউজারস্পেস এবং ফাইল সিস্টেমে একই লাইব্রেরির দুটি সংস্করণের প্রয়োজনের একাধিক প্রক্রিয়া চালনা করেন তবে আপনাকে প্রতিটি প্রক্রিয়াটির জন্য কমপক্ষে LDPATH টিচ করতে হবে যাতে সঠিক লাইব্রেরিটি প্রথমে পাওয়া যায়, এবং কয়েকটি লাইব্রেরি এইভাবে টুইট করা যায় না, যেহেতু তাদের পথটি সংকলনের সময় নির্বাহযোগ্য ক্ষেত্রে কঠোরভাবে কোড করা হয়েছে, আরও তথ্যের জন্য এই এসও প্রশ্নটি দেখুন।
নেটওয়ার্ক স্তরে একই পোর্টগুলি এড়ানোর জন্য আপনাকে প্রতিটি প্রক্রিয়াটি কনফিগার করতে হবে।
একই ধারকটিতে একাধিক প্রক্রিয়া চালনা করতে কিছু ভারী টুইট করা প্রয়োজন এবং দিনের শেষে বিচ্ছিন্নকরণের উদ্দেশ্যকে পরাস্ত করতে যদি আপনি একই ফাইলসাইম এবং নেটওয়ার্ক সংস্থানগুলি ভাগ করে একই ব্যবহারকারী স্পেসের মধ্যে একাধিক প্রক্রিয়া চালানো ঠিক করেন, তবে কেন এগুলি চালাচ্ছেন না? হোস্ট নিজেই?
আমি ভাবতে পারি ভারী টুইটগুলি / ক্ষতিগুলি এর অস্তিত্বহীন তালিকাটি এখানে:
লগগুলি পরিচালনা করছে
হয় একটি মাউন্ট ভলিউম সঙ্গে বা stdout এ আন্তঃবিস্তৃত এই কিছু পরিচালনা এনেছে। যদি মাউন্ট করা ভলিউম ব্যবহার করা হয় তবে আপনার ধারকটির নিজস্ব "স্থান" হোস্টে থাকা উচিত বা দুটি একই ধারক একই সংস্থানটির জন্য লড়াই করবে। স্টাডাউটে যখন docker logs
এটির সুবিধা গ্রহণ করার জন্য ইন্টারলিভিংয়ের সূত্রগুলি সহজে সনাক্ত না করা যায় তবে বিশ্লেষণের জন্য এটি একটি দুঃস্বপ্ন হয়ে উঠতে পারে।
জম্বি প্রক্রিয়াগুলি থেকে সাবধান থাকুন
যদি কোনও ধারক ক্র্যাশে আপনার প্রক্রিয়া থেকে থাকে তবে সুপারভাইজার জম্বি রাজ্যে বাচ্চাদের সাফ করতে সক্ষম না হতে পারে এবং হোস্ট ইনিশ কখনই তাদের উত্তরাধিকারী হবে না। একবার আপনি উপলব্ধ পিডগুলির সংখ্যাটি নিঃশেষ করে দেওয়ার পরে (প্রায় 2 মিলিয়ন প্রায় 4 মিলিয়ন) একগুচ্ছ জিনিস ব্যর্থ হবে।
উদ্বেগ বিচ্ছেদ
আপনি যদি দুটি পৃথক জিনিস চালান, যেমন অ্যাপাচি সার্ভার এবং একই পাত্রে লগস্ট্যাশ, যা লগ হ্যান্ডলিংকে স্বাচ্ছন্দ্য করতে পারে তবে লগস্ট্যাশ আপডেট করার জন্য আপনাকে অ্যাপাচি বন্ধ করতে হবে। (বাস্তবে, আপনার ডকারের লগিং ড্রাইভার ব্যবহার করা উচিত) বর্তমান সেশনগুলি শেষ হওয়ার অপেক্ষা করা কি একটি প্রশংসনীয় স্টপ হবে? যদি এটি মনোমুগ্ধকর স্টপ হয় তবে এটি কিছুটা সময় নিতে পারে এবং নতুন সংস্করণটি রোল করতে আরও দীর্ঘ হতে পারে। যদি আপনি একটি হত্যা করেন, আপনি লগ শিপারের জন্য ব্যবহারকারীদের প্রভাবিত করবেন এবং এটি আইএমএইচও এড়ানো উচিত।
শেষ পর্যন্ত যখন আপনার একাধিক প্রক্রিয়া থাকে আপনি একটি ওএস পুনরায় উত্পাদন করছেন এবং এই ক্ষেত্রে একটি হার্ডওয়্যার ভার্চুয়ালাইজেশন ব্যবহার করা এই প্রয়োজনের সাথে সামঞ্জস্যপূর্ণ মনে হয়।