Docker Tutorial - مقدمة في Docker & Containerization



في هذا البرنامج التعليمي لـ Docker ، ستفهم الضرورة الكامنة وراء Docker وستحصل على مقدمة إلى Docker. إنها أول مدونة في سلسلة دروس Docker

آمل ألا تكون قد فاتتك سلسلة مدونات DevOps التعليمية السابقة. اذهب من خلال هنا.يتزايد الاتجاه الذي لا يمكن احتواؤه لحاوية Docker وتبحث المنظمات عن محترفين يمتلكون .الآن هذه المرة ، سنأخذك من خلال مقدمة إلى Docker.

برنامج Docker التعليمي

ستمنحك مدونة Docker Tutorial عرضًا مفاهيميًا وعمليًا لـ Docker - تقنية جديدة لتعبئة الحاويات.





سنركز في هذه المدونة على المواضيع التالية:

  • ما هي الافتراضية؟
  • ما هو الحاوية
  • مزايا الحاوية على الافتراضية
  • مقدمة إلى Docker
  • فوائد Docker
  • الافتراضية مقابل الحاويات
  • تركيب Docker
  • Dockerfile ، Docker Image & Docker Container
  • ما هو Docker Hub؟
  • العمارة Docker
  • Docker Compose

تكتسب Docker شعبية وانتشار استخدامها كالنار في الهشيم. سبب تزايد شعبية Docker هو مدى إمكانية استخدامه في مؤسسة تكنولوجيا المعلومات. هناك عدد قليل جدًا من الأدوات التي لديها وظائف تجد نفسها مفيدة لكل من المطورين ومسؤولي النظام. Docker هي إحدى هذه الأدوات التي تفي حقًا بوعدها بناء و سفينة و يركض .



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

فمثلا: لنفكر في تطبيق قائم على نظام Linux والذي تمت كتابته بلغتي Ruby و Python. يتطلب هذا التطبيق إصدارًا محددًا من Linux و Ruby و Python. من أجل تجنب أي تعارض في الإصدار من جانب المستخدم ، يمكن إنشاء حاوية عامل تشغيل linux مع الإصدارات المطلوبة من Ruby و Python المثبتة مع التطبيق. الآن يمكن للمستخدمين النهائيين استخدام التطبيق بسهولة عن طريق تشغيل هذه الحاوية دون القلق بشأن التبعيات أو أي تعارض في الإصدار.

تستخدم هذه الحاويات حاويات يمكن اعتبارها نسخة متطورة من المحاكاة الافتراضية. يمكن أيضًا تحقيق نفس المهمة باستخدام الأجهزة الافتراضية ، إلا أنها ليست فعالة جدًا.



أتلقى بشكل عام سؤالاً في هذه المرحلة ، أي ما هو الفرق بين الظاهرية والحاوية؟ هذان المصطلحان متشابهان للغاية مع بعضهما البعض. لذا ، دعني أخبرك أولاً ما هي الافتراضية؟

ما هي الافتراضية؟

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

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

هندسة الآلة الافتراضية - برنامج Docker التعليمي حول مقدمة Docker - Edureka

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

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

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

فيما يلي عيوب المحاكاة الافتراضية:

  • يؤدي تشغيل عدة أجهزة افتراضية إلى أداء غير مستقر
  • Hypervisors ليست فعالة مثل نظام التشغيل المضيف
  • عملية التمهيد طويلة وتستغرق وقتًا

أدت هذه العيوب إلى ظهور تقنية جديدة تسمى Containerization. الآن اسمحوا لي أن أخبركم عن حاويات.

ما هو الحاوية؟

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

مزايا الحاوية على الافتراضية:

  • الحاويات الموجودة في نفس نواة نظام التشغيل أخف وأصغر حجمًا
  • استخدام أفضل للموارد بالمقارنة مع الأجهزة الافتراضية
  • عملية التمهيد قصيرة وتستغرق بضع ثوان

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

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

كيف تكتب طريقة الخيط

تحقق من فيديو Docker التعليمي هذا للحصول على فهم عميق لـ Docker.

برنامج Docker التعليمي للمبتدئين | ما هو Docker؟ | أدوات DevOps | إدوريكا

الآن ، اسمحوا لي أن آخذك من خلال مقدمة Docker.

Docker Tutorial - مقدمة إلى Docker

Docker هي عبارة عن منصة حاويات تقوم بتعبئة تطبيقك وجميع تبعياته معًا في شكل حاويات لضمان عمل تطبيقك بسلاسة في أي بيئة.

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

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

فوائد Docker

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

الافتراضية مقابل الحاويات

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

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

الشكل: ما هي تحليلات البيانات الكبيرة - الافتراضية مقابل الحاوية

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

الآن ، دعونا نثبت Docker.

تثبيت Docker:

سأقوم بتثبيت Docker في جهاز Ubuntu 17.10 الخاص بي. فيما يلي خطوات تثبيت Docker:

  1. تثبيت الحزم المطلوبة
  2. إعداد مستودع Docker
  3. قم بتثبيت Docker على Ubuntu

1. تثبيت الحزم المطلوبة:

هناك حزم معينة تحتاجها في نظامك لتثبيت Docker. قم بتنفيذ الأمر أدناه لتثبيت هذه الحزم.

sudo apt-get install curl apt-transport-https ca- الشهادات خصائص البرامج المشتركة

2. إعداد Docker Repository:

الآن ، قم باستيراد مفتاح GPG الرسمي لـ Dockers للتحقق من توقيع الحزم قبل تثبيتها باستخدام apt-get. قم بتشغيل الأمر أدناه على Terminal:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

الآن ، أضف مستودع Docker على نظام Ubuntu الخاص بك والذي يحتوي على حزم Docker بما في ذلك تبعياتها ، لذلك قم بتنفيذ الأمر التالي:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) مستقر'

3. تثبيت Docker على Ubuntu:

أنت الآن بحاجة إلى ترقية apt index وتثبيت إصدار مجتمع Docker ، لذلك قم بتنفيذ الأوامر التالية:

sudo apt-get update sudo apt-get install docker-ce

تهانينا! لقد قمت بتثبيت Docker بنجاح. أيضًا ، تحقق من عدد قليل شائع الاستخدام أوامر عامل ميناء .

الآن دعونا نرى بعض مفاهيم Docker المهمة.

Dockerfile و Docker Image و Docker Container:

  1. يتم إنشاء صورة Docker من خلال تسلسل الأوامر المكتوبة في ملف يسمى Dockerfile.
  2. عندما يتم تنفيذ ملف Dockerfile هذا باستخدام أمر عامل ميناء ، فإنه ينتج عنه صورة Docker باسم.
  3. عندما يتم تنفيذ هذه الصورة بواسطة أمر 'docker run' فإنها ستبدأ بنفسها أي تطبيق أو خدمة يجب أن تبدأ عند تنفيذها.

Docker Hub:

يشبه Docker Hub GitHub لـ Docker Images. إنه في الأساس سجل سحابي حيث يمكنك العثور على Docker Images التي تم تحميلها من قبل مجتمعات مختلفة ، كما يمكنك تطوير صورتك الخاصة وتحميلها على Docker Hub ، ولكن أولاً ، تحتاج إلى إنشاء حساب على DockerHub.

هندسة Docker:

يتكون من Docker Engine وهو تطبيق خادم عميل بثلاثة مكونات رئيسية:

  1. خادم هو نوع من البرامج طويلة التشغيل تسمى عملية الخفي (أمر عامل الإرساء).
  2. واجهة برمجة تطبيقات REST تحدد الواجهات التي يمكن للبرامج استخدامها للتحدث إلى البرنامج الخفي وإعطائه تعليمات بما يجب فعله.
  3. عميل واجهة سطر الأوامر (CLI) (أمر عامل الإرساء).
  4. يستخدم CLI واجهة Docker REST API للتحكم أو التفاعل مع Docker daemon من خلال البرمجة النصية أو أوامر CLI المباشرة. تستخدم العديد من تطبيقات Docker الأخرى API و CLI الأساسيين.

راجع هذه المدونة لقراءة المزيد عنها .

أخيرًا في مدونة Docker Tutorial هذه ، سأتحدث عن Docker Compose.

تأليف عامل ميناء:

يستخدم Docker Compose بشكل أساسي لتشغيل عدة حاويات Docker كخادم واحد. اسمحوا لي أن أقدم لكم مثالا:

افترض إذا كان لدي تطبيق يتطلب WordPress و Maria DB و PHP MyAdmin. يمكنني إنشاء ملف واحد يبدأ تشغيل كل من الحاويات كخدمة دون الحاجة إلى بدء كل واحدة على حدة. إنه مفيد حقًا خاصة إذا كان لديك بنية خدمة مصغرة.

راجع مدونتي على حاوية عامل السفن لفهم كيفية تنفيذها عمليا.

يمكنك أيضًا قراءة هذه المدونة حول كيفية تعبئة تطبيق مكدس متوسط ​​باستخدام Docker Compose.

بهذا نكون قد انتهينا من مدونة Docker Tutorial الأولى حول مقدمة إلى Docker & Containerization.

انتقل إلى مدونتنا التالية على Docker:

الآن بعد أن فهمت ما هو DevOps ، تحقق من من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على اكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Jenkins و Nagios و Ansible و Chef و Saltstack و GIT لأتمتة خطوات متعددة في SDLC.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات وسنعاود الاتصال بك.

فرز وظيفة c ++