ডকার পাত্রে থাকা প্রক্রিয়াগুলি দেখতে কেমন?


33

আমি ডকারের ধারকটি কী তা সম্পর্কে এবং বেশিরভাগ ভিতরে ভিতরে কী চলছে তার আশেপাশে বেশ কয়েকবার বিভ্রান্তি শুনেছি, ডকারের ধারকটির ভিতরে থাকা কমান্ড ও প্রক্রিয়াগুলির বিষয়ে যা আমি প্রার্থনা করি।

কেউ কি ঘটছে তার একটি উচ্চ স্তরের ওভারভিউ সরবরাহ করতে পারেন?


3
সঠিক না হওয়ার সময় (এবং কেন আমি এটি উত্তর হিসাবে লিখতে যাচ্ছি না) আমি ডকারকে অভিনব ক্রুট হিসাবে ভার্চুয়াল মেশিন হিসাবে ভাবা সহজ মনে করি। এটি সঠিক নয়, তবে এটি আমার মাথায় এটি কল্পনা করার চেষ্টা করার সময় সহায়তা করে।
কোটায়ার

2
@ কোটায়ার - এটি মজার বিষয় যে আপনি এই উপমাটি উল্লেখ করেছেন, ডকার পাশাপাশি যা করছে তা বর্ণনা করার চেষ্টা করার সময় আমি সেই সঠিকটি ব্যবহার করেছি। আইএমও ডকারের ভার্চুয়ালাইজেশনের চেয়ে ক্রুটের সাথে অনেক বেশি মিল রয়েছে।
slm

উত্তর:


53

ডকার ভার্চুয়ালাইজেশন বালতিতে ফেলে দেওয়া হয়, কারণ লোকেরা ধারণা করে যে এটি কোনওরকমভাবে হার্ডওয়্যারটির নীচে ভার্চুয়ালাইজেশন করছে। এটি একটি মিসনোমার যা ডোকার মূলত পাত্রে শব্দটি ব্যবহার করে যা পরিভাষা ব্যবহার করে from

তবে ডকার কোনও সিস্টেমের হার্ডওয়্যারকে ভার্চুয়ালাইজ করার ক্ষেত্রে যাদুকর কিছু করছে না। বরং এটি লিনাক্স কার্নেলের মূল সুবিধার চারপাশে "বেড়া" নির্মাণের ক্ষমতাকে কাজে লাগিয়েছে, যা নেটওয়ার্ক, ফাইল সিস্টেম এবং অনুমতিগুলির (যেমন অন্যান্য জিনিসের মধ্যে) সাথে যোগাযোগের জন্য একটি প্রক্রিয়া আপনাকে ইন্টারঅ্যাক্ট করছে তা জানাতে সহায়তা করে you're একটি সম্পূর্ণ ক্রিয়ামূলক সিস্টেম সহ।

এখানে একটি উদাহরণ রয়েছে যা চিত্রিত করে যা আমরা যখন ডকার পাত্রে শুরু করি এবং তারপরে এটির অনুরোধের মাধ্যমে প্রবেশ করি তখন কী চলছে /bin/bash

$ docker run -it ubuntu:latest /bin/bash
root@c0c5c54062df:/#

এখন এই ধারকটির ভিতরে থেকে, যদি আমরা চালাই ps -eaf:

    ss01

অন্য একটি টার্মিনাল ট্যাবে স্যুইচ করা যেখানে আমরা হোকার সিস্টেমে লগইন করছি যা ডকার কনটেইনারটি হোস্ট করছে, আমরা ধারকটি "প্রকৃতপক্ষে" গ্রহণ করার প্রক্রিয়া স্থানটি দেখতে পাচ্ছি:

    ss02

এখন আমরা যদি ডকার ট্যাবে ফিরে যাই এবং এর মধ্যে বেশ কয়েকটি প্রক্রিয়া চালু করি এবং সেগুলি সমস্ত ব্যাকগ্রাউন্ড করি তবে আমরা দেখতে পাচ্ছি যে আমাদের প্রাথমিক প্রাথমিক বাশ প্রক্রিয়াটির অধীনে চলমান বেশ কয়েকটি শিশু প্রক্রিয়া রয়েছে যা আমরা মূলত ডকার ধারক প্রবর্তনের অংশ হিসাবে শুরু করেছি।

দ্রষ্টব্য: প্রক্রিয়াগুলি 4 টি sleep 1000কমান্ড যা পটভূমি হচ্ছে।

    ss03

নথিভুক্ত পাত্রে কীভাবে প্রক্রিয়াগুলি 48-51 এর প্রসেস আইডি (পিআইডি) বরাদ্দ করা হয় তা লক্ষ্য করুন। তাদের ps -eafফলাফল হিসাবে তাদের দেখুন :

    ss04

যাইহোক, এই পরবর্তী চিত্রের সাথে ডকার যে "ম্যাজিক" সম্পাদন করছে তার অনেকটাই প্রকাশিত হয়েছে।

    ss05

দেখুন 4 টি sleep 1000প্রক্রিয়াগুলি কীভাবে আমাদের আসল বাশ প্রক্রিয়াতে কেবলমাত্র শিশু প্রক্রিয়া? এছাড়াও লক্ষ করুন যে আমাদের আসল ডকার পাত্রটি /bin/bashআসলে ডকার ডিমনও একটি শিশু প্রক্রিয়া।

এখন যদি আমাদের আসল sleep 1000কমান্ডগুলি শেষ হওয়ার জন্য 1000+ সেকেন্ড অপেক্ষা করতে হয় এবং তারপরে আরও 4 টি নতুন চালানো হয়, এবং অন্য ডকারের ধারকটিকে এভাবে শুরু করা হয়:

$ docker run -it ubuntu:latest /bin/bash
root@450a3ce77d32:/#

হোস্ট কম্পিউটারের আউটপুটটি ps -eafদেখতে এরকম হবে:

    ss06

এবং অন্যান্য ডকার পাত্রে সমস্ত ডকার ডিমন অধীনে প্রক্রিয়া হিসাবে প্রদর্শিত হবে।

সুতরাং আপনি দেখুন, ডকার সত্যই ভার্চুয়ালাইজিং করছে না ( প্রচলিত অর্থে ), এটি বিভিন্ন কার্নেল সংস্থার চারপাশে "বেড়া" তৈরি করছে এবং তাদের প্রদত্ত প্রক্রিয়া + শিশুদের জন্য দৃশ্যমানতা সীমাবদ্ধ করছে।


এছাড়াও ডকার চলমান ধারক প্রতি পৃথক ব্যবহারকারী স্থান তৈরি করে।
ভার্গব নানেকালভা

3

ধারকটির ভিতরে , আপনার প্রক্রিয়াগুলি পৃথক করা উচিত (পৃথক করে রাখা)। আসলে আপনার কোনও প্রক্রিয়া দেখতে পাওয়া উচিত নয় তবে আপনার নির্দিষ্ট করা (কমপক্ষে একটি শেল)। এটি "সামাজিকতা" পরীক্ষার জন্য নয়। ক্রুটের সাথে একমাত্র মিল হ'ল হোস্ট কার্নেলটি ব্যবহৃত হয়। হোস্টে চলার চেয়ে আপনার যদি কিছু আলাদা করতে বা প্ল্যাটফর্ম আর্কিটেকচার সফ্টওয়্যারটির বিভিন্ন সংস্করণ ব্যবহার করতে হয় তবে ডকার দুর্দান্ত। (জাভার খুব পুরানো সংস্করণ বা পাইথনের আলাদা কাঁটাচামচ বলে)। তীব্রভাবে সচেতন হোন যে আপনি যে ফোল্ডার এবং বাইনারিগুলি নিয়ে কাজ করছেন সেটি হোস্টের মতো নাও হতে পারে। এটি একই / বিন ফোল্ডার ইত্যাদি নয়

সম্পাদনা: ভিএম এর চেয়ে ক্রুটের সাথে মিল।


1
সম্পাদিত, আমি লিগ্যাসি জেন ​​ক্যাপটি নিয়ে ভাবছিলাম। স্পষ্টতই কেভিএম / কিউমু এর অধীনে উইন্ডোজ চালু করার সময় বা ভার্চুয়ালবক্সের অধীনে 32 বিট হোস্টে একটি 64 বিট ভিএম চালানোর ক্ষেত্রে এমনটি হয় না। (জিজ্ঞাসা করবেন না) এটি AWS এর জন্য পিভি বনাম এইচভিএম যুক্তির অনুরূপ to
ম্যাকেনজম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.