لماذا نستخدم صورة قاعدة نظام التشغيل مع عامل الميناء إذا الحاويات ليس لديها نظام التشغيل ضيف?

لقد بدأت للتو لدراسة عامل الميناء وهناك شيء ما يجري مربكة جدا بالنسبة لي. كما قرأت على موقع دوكر حاوية مختلفة عن جهاز ظاهري. كما فهمت حاوية هو مجرد رمل داخل الذي يتم تشغيل نظام الملفات معزولة بأكمله.

لقد قرأت أيضا أن الحاوية لا تحتوي على نظام تشغيل ضيف مثبت. بدلا من ذلك يعتمد على نواة نظام التشغيل الأساسية.

كل ذلك على ما يرام. ما أنا الخلط هو أن هناك صور عامل الميناء سميت أنظمة التشغيل. ونحن نرى صورا مثل أوبونتو ، ديبيان ، فيدورا ، سينت أو إس وهلم جرا.

وجهة نظري هي: ما هي تلك الصور, هل حقا? كيف يختلف إنشاء حاوية بناء على صورة دبيان عن إنشاء جهاز افتراضي وتثبيت دبيان?

اعتقدت أن الحاويات لم يكن لديها نظام تشغيل ضيف مثبت ، ولكن عندما نقوم بإنشاء صور ، فإننا نؤسسها على بعض الصور التي تحمل اسم نظام تشغيل واحد.

أيضا ، في أمثلة رأيت عندما نفعل docker run ubuntu echo "hello world"، يبدو أننا الغزل حتى فم مع أوبونتو وجعلها تشغيل الأمر echo "hello world".

بنفس الطريقة عندما نفعل docker run -it ubuntu /bin/bash، يبدو أننا الغزل حتى فم مع أوبونتو والوصول إليه باستخدام سطر الأوامر.

على أي حال, ما هي تلك الصور سميت أنظمة التشغيل كل شيء? كيف يختلف هو لتشغيل حاوية مع واحدة من تلك الصور والغزل حتى فم مع نظام التشغيل الضيف المقابلة?

هي فكرة أننا فقط مشاركة النواة مع نظام التشغيل المضيف (وبالتالي لدينا إمكانية الوصول إلى موارد أجهزة الجهاز الأساسية ، دون الحاجة إلى المحاكاة الافتراضية للأجهزة) ، ولكن لا تزال تستخدم الملفات والثنائيات لكل نظام مختلف على الحاويات من أجل دعم أي تطبيق نريد تشغيله?

وبما أن جميع توزيعات لينكس تشغيل نفس (نعم ، انها مبسطة قليلا) نواة لينكس وتختلف فقط في البرمجيات أوزرلاند ، فإنه من السهل جدا لمحاكاة بيئة توزيع مختلفة - فقط عن طريق تثبيت هذا البرنامج أوزرلاند والتظاهر انها توزيع آخر. كونها محددة ، وتركيب حاوية سينتوس داخل أوبونتو أوس يعني أنك سوف تحصل على وسيرلاند من سينتوس ، في حين لا يزال تشغيل نفس النواة ، ولا حتى مثيل نواة أخرى.

لذا خفيف الوزن المحاكاة الافتراضية هي مثل وجود مقصورات معزولة داخل نفس نظام التشغيل. الاتحاد الافريقي كونتراير الافتراضية الحقيقية هو وجود نظام تشغيل كامل آخر داخل نظام التشغيل المضيف. هذا هو السبب في عامل الميناء لا يمكن تشغيل فري أو ويندوز داخل لينكس.

إذا كان ذلك سيكون أسهل ، يمكنك التفكير عامل الميناء هو نوع من بيئة الاستجذار متطورة جدا ومتقدمة.

كنت أعاني من نفس السؤال الذي تطرحه ، وهذا ما فهمت.

الحاوية ليس لديها نظام تشغيل ضيف ، أنت محق في ذلك.

ثم لماذا نحن قاعدة الحاوية على صورة نظام التشغيل?

لأنك تريد استخدام بعض الأوامر مثل (أبت ، لس ، سد ، بود).هذه الأوامر هي المكالمات إلى الملفات الثنائية التي قد تتوفر لك في نظام التشغيل المضيف الخاص بك دون تثبيت anything.In من أجل أن تكون قادرا على تشغيل هذه الأوامر داخل صورة عامل الميناء الخاص بك يجب أن يكون لديك الثنائيات لهم داخل الصورة الخاصة بك ، بسبب العزلة كنت لا مجرد تنفيذ الثنائيات من نظام التشغيل المضيف.

انظر هذه الإجابة للحصول على فهم أفضل لماذا نحتاج حتى إلى صورة أساسية: https://stackoverflow.com/a/62384611

تعمل الحاويات على نواة واحدة. وبعبارة أخرى ، تحتوي جميع الحاويات على نواة واحدة (نظام تشغيل مضيف). بينما من ناحية أخرى هبرفيسورس لها العديد من النواة. يعمل كل جهاز ظاهري على نواة مختلفة.

و" عامل الميناء تشغيل أوبونتو " هو تماما مثل لخلق بيئة الاستجذار.

في رأيي ، أهدافك في المحاكاة الافتراضية هي المفاتيح. إذا كنت بحاجة إلى مكتبات ولغات وما إلى ذلك. على نظام التشغيل ، لذلك حاويات نظام التشغيل هي مناسبة مع حاجتك. ولكن إذا كانت حاجتك هي التطبيق فقط كمكونات، فليس من الضروري استخدام نظام التشغيل كصورة أساسية. أعتقد أن هذه المقالة يمكن أن تشرح ذلك بوضوح Operating System Containers vs. Application Containers - RisingStack Engineering