ডকার ভার্চুয়ালাইজেশন বালতিতে ফেলে দেওয়া হয়, কারণ লোকেরা ধারণা করে যে এটি কোনওরকমভাবে হার্ডওয়্যারটির নীচে ভার্চুয়ালাইজেশন করছে। এটি একটি মিসনোমার যা ডোকার মূলত পাত্রে শব্দটি ব্যবহার করে যা পরিভাষা ব্যবহার করে from
তবে ডকার কোনও সিস্টেমের হার্ডওয়্যারকে ভার্চুয়ালাইজ করার ক্ষেত্রে যাদুকর কিছু করছে না। বরং এটি লিনাক্স কার্নেলের মূল সুবিধার চারপাশে "বেড়া" নির্মাণের ক্ষমতাকে কাজে লাগিয়েছে, যা নেটওয়ার্ক, ফাইল সিস্টেম এবং অনুমতিগুলির (যেমন অন্যান্য জিনিসের মধ্যে) সাথে যোগাযোগের জন্য একটি প্রক্রিয়া আপনাকে ইন্টারঅ্যাক্ট করছে তা জানাতে সহায়তা করে you're একটি সম্পূর্ণ ক্রিয়ামূলক সিস্টেম সহ।
এখানে একটি উদাহরণ রয়েছে যা চিত্রিত করে যা আমরা যখন ডকার পাত্রে শুরু করি এবং তারপরে এটির অনুরোধের মাধ্যমে প্রবেশ করি তখন কী চলছে /bin/bash
।
$ docker run -it ubuntu:latest /bin/bash
root@c0c5c54062df:/#
এখন এই ধারকটির ভিতরে থেকে, যদি আমরা চালাই ps -eaf
:
অন্য একটি টার্মিনাল ট্যাবে স্যুইচ করা যেখানে আমরা হোকার সিস্টেমে লগইন করছি যা ডকার কনটেইনারটি হোস্ট করছে, আমরা ধারকটি "প্রকৃতপক্ষে" গ্রহণ করার প্রক্রিয়া স্থানটি দেখতে পাচ্ছি:
এখন আমরা যদি ডকার ট্যাবে ফিরে যাই এবং এর মধ্যে বেশ কয়েকটি প্রক্রিয়া চালু করি এবং সেগুলি সমস্ত ব্যাকগ্রাউন্ড করি তবে আমরা দেখতে পাচ্ছি যে আমাদের প্রাথমিক প্রাথমিক বাশ প্রক্রিয়াটির অধীনে চলমান বেশ কয়েকটি শিশু প্রক্রিয়া রয়েছে যা আমরা মূলত ডকার ধারক প্রবর্তনের অংশ হিসাবে শুরু করেছি।
দ্রষ্টব্য: প্রক্রিয়াগুলি 4 টি sleep 1000
কমান্ড যা পটভূমি হচ্ছে।
নথিভুক্ত পাত্রে কীভাবে প্রক্রিয়াগুলি 48-51 এর প্রসেস আইডি (পিআইডি) বরাদ্দ করা হয় তা লক্ষ্য করুন। তাদের ps -eaf
ফলাফল হিসাবে তাদের দেখুন :
যাইহোক, এই পরবর্তী চিত্রের সাথে ডকার যে "ম্যাজিক" সম্পাদন করছে তার অনেকটাই প্রকাশিত হয়েছে।
দেখুন 4 টি sleep 1000
প্রক্রিয়াগুলি কীভাবে আমাদের আসল বাশ প্রক্রিয়াতে কেবলমাত্র শিশু প্রক্রিয়া? এছাড়াও লক্ষ করুন যে আমাদের আসল ডকার পাত্রটি /bin/bash
আসলে ডকার ডিমনও একটি শিশু প্রক্রিয়া।
এখন যদি আমাদের আসল sleep 1000
কমান্ডগুলি শেষ হওয়ার জন্য 1000+ সেকেন্ড অপেক্ষা করতে হয় এবং তারপরে আরও 4 টি নতুন চালানো হয়, এবং অন্য ডকারের ধারকটিকে এভাবে শুরু করা হয়:
$ docker run -it ubuntu:latest /bin/bash
root@450a3ce77d32:/#
হোস্ট কম্পিউটারের আউটপুটটি ps -eaf
দেখতে এরকম হবে:
এবং অন্যান্য ডকার পাত্রে সমস্ত ডকার ডিমন অধীনে প্রক্রিয়া হিসাবে প্রদর্শিত হবে।
সুতরাং আপনি দেখুন, ডকার সত্যই ভার্চুয়ালাইজিং করছে না ( প্রচলিত অর্থে ), এটি বিভিন্ন কার্নেল সংস্থার চারপাশে "বেড়া" তৈরি করছে এবং তাদের প্রদত্ত প্রক্রিয়া + শিশুদের জন্য দৃশ্যমানতা সীমাবদ্ধ করছে।