برنامج Docker التعليمي للمبتدئين: الأساسيات، Archiالبنية والحاويات
⚡ ملخص ذكي
Docker عبارة عن منصة حاويات تقوم بتجميع التطبيقات وتوابعها في حاويات محمولة وخفيفة الوزن. تشرح هذه النظرة العامة بنية Docker، وتثبيته على Ubuntu، والأوامر الأساسية، وكيف تختلف الحاويات عن الآلات الافتراضية التقليدية لتسريع عملية تسليم البرامج.

يُعد Docker أحد أشهر منصات الحاويات المستخدمة في التطبيقات الحديثة DevOps وسير العمل السحابي. يشرح هذا الدليل التعليمي لـ Docker للمبتدئين ماهية Docker، وكيف تعمل بنية Docker، وكيفية تثبيت Docker على Ubuntuوالأوامر الأساسية المستخدمة لإدارة الصور والحاويات.
ما هو عامل الميناء؟
عامل في حوض السفن Docker هي منصة لتطوير البرمجيات تعتمد على المحاكاة الافتراضية، وتتيح تشغيل أنظمة تشغيل متعددة على نفس المضيف. تساعدك هذه المنصة على فصل البنية التحتية عن التطبيقات، مما يُمكّنك من تقديم البرمجيات بسرعة. على عكس برامج إدارة الأجهزة الافتراضية (Hypervisors)، التي تُستخدم لإنشاء الأجهزة الافتراضية، تُنفّذ Docker المحاكاة الافتراضية على مستوى النظام باستخدام وحدات تُسمى حاويات Docker.
تعمل حاويات Docker فوق نظام التشغيل المضيف، كما هو موضح في الصورة أدناه. وهذا يُحسّن الكفاءة والأمان. كما يُمكنك تشغيل عدد أكبر من الحاويات مقارنةً بالأجهزة الافتراضية على نفس البنية التحتية، لأن الحاويات تستهلك موارد أقل.

على عكس الأجهزة الافتراضية، التي يمكنها التواصل مباشرة مع مكونات الجهاز المضيف (على سبيل المثال، محول إيثرنت يُنشئ المزيد من المحولات الافتراضية)، تعمل حاويات Docker في بيئة معزولة فوق نظام التشغيل المضيف. حتى لو كان جهازك المضيف يعمل بنظام تشغيل آخر. Windows، يمكنك الجري لينكس الصور داخل الحاويات بمساعدة Hyper-V، والذي يقوم تلقائيًا بإنشاء جهاز افتراضي صغير لمحاكاة الصورة الأساسية.
الآن وقد عرفت ما هو Docker، دعنا نلقي نظرة على الأسباب الرئيسية التي تدفع الفرق لاختياره.
لماذا استخدام دوكر؟
فيما يلي الأسباب الرئيسية لاستخدام Docker:
- Docker هو برنامج يُستخدم للمحاكاة الافتراضية، مما يسمح بتشغيل عدة تطبيقات في وقت واحد. أنظمة التشغيل لتشغيلها على نفس المضيف.
- Docker هو تطبيق عميل-خادم، مما يعني أن العملاء يتواصلون مع الخادم.
- تعمل صور Docker بمثابة "شفرة المصدر" للحاويات؛ أنت تستخدمها للبناء.
- يدعم Docker نوعين من السجلات: العامة والخاصة.
- الحاويات هي الوحدات التنظيمية في Docker. ببساطة، الصورة هي قالب، والحاوية هي نسخة من ذلك القالب، لذا يمكنك تشغيل حاويات متعددة من نفس الصورة.
تأتي هذه المزايا من تصميم Docker. يشرح القسم التالي بنية Docker ومكوناتها الأساسية.
عامل في حوض السفن Architecture
والآن، في هذا الدرس التعليمي حول حاويات Docker، دعونا نلقي نظرة على المكونات الرئيسية لبنية Docker.
عامل الميناء
Docker هو تطبيق عميل-خادم، مما يعني أن لدينا عملاء يقومون بتمرير الطلبات إلى الخادم. برنامج Docker الخفي، المسمى dockerd، هو محرك Docker الذي يمثل الخادم. يمكن تشغيل البرنامج الخفي والعملاء على نفس المضيف أو على مضيف بعيد، ويتواصلون من خلال ملف تنفيذي للعميل يعمل عبر سطر الأوامر وبروتوكول كامل. RESTful API الذي يتفاعل مع dockerd.
صور عامل ميناء
صور Docker هي بمثابة "الشفرة المصدرية" لحاوياتنا؛ فنحن نستخدمها لبناء الحاويات. يمكن تثبيت البرامج مسبقًا على هذه الصور، مما يُسرّع عملية النشر. وهي قابلة للنقل، ويمكنك استخدام الصور الموجودة أو إنشاء صورك الخاصة.
سجلات Docker
يخزن Docker الصور التي نبنيها في سجلات. توجد سجلات عامة وخاصة. لدى Docker سجل عام يسمى دوكر هابحيث يمكنك أيضًا تخزين الصور بشكل خاص. يحتوي Docker Hub على ملايين الصور التي يمكنك البدء باستخدامها فورًا.
حاويات دوكر
تُعدّ الحاويات الوحدات التنظيمية في Docker وأحد مفاهيمها الأساسية. فعندما نبني صورةً ونشغلها، فإننا نشغلها داخل حاوية. ويُستخدم تشبيه الحاوية نظرًا لإمكانية نقل البرنامج الذي يعمل بداخلها: إذ يُمكن نقله، أو "شحنه"، أو تعديله، أو إدارته، أو إنشائه، أو حذفه، تمامًا كما تتعامل سفن الشحن مع الحاويات الحقيقية.
بعبارات بسيطة، الصورة هي قالب، والحاوية هي نسخة من هذا القالب. يمكن أن يكون لديك حاويات (نسخ) متعددة من نفس الصورة.
يُظهر التفاعل بين هذه المكونات المختلفة كيفية عمل تقنية حاويات Docker معًا. وتتيح لك أوامر مثل docker pull و docker run، والتي سنتناولها لاحقًا، إدارة سير العمل هذا.
مع مراعاة بنية النظام، دعونا نقوم بتثبيت Docker حتى تتمكن من تجربة هذه المكونات بنفسك.
كيفية تثبيت Docker على نظام Linux/Ubuntu
فيما يلي شرح مفصل لعملية تثبيت Docker على نظام Linux/Ubuntu:
الخطوة 1) لتثبيت Docker، ستحتاج إلى حزم DEB الخاصة بفريق Docker. أولاً، بعض المتطلبات الأساسية Ubuntu يلزم تثبيت بعض الحزم. استخدم الأمر أدناه لتثبيتها.
$ sudo apt-get install \ apt-transport-https \ ca-certificates curl \ software-properties-common
*العلامة "\" ليست ضرورية فهي تستخدم للسطر الجديد، إذا أردت يمكنك كتابة الأمر دون استخدام "\" في سطر واحد فقط.
الخطوة 2) أضف مفتاح GPG الرسمي لـ Docker مع بصمة الإصبع. استخدم أمر Docker التالي لإدخال مفتاح GPG.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
الخطوة 3) بعد ذلك، أضف مستودع Docker APT باستخدام الأمر أدناه.
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
قد يُطلب منك تأكيد رغبتك في إضافة المستودع وإضافة مفتاح GPG تلقائيًا إلى مضيفك. يجب أن يقوم الأمر lsb_release بتعبئة Ubuntu نسخة توزيع المضيف الخاص بك.
الخطوة 4) بعد إضافة مفتاح GPG، قم بتحديث مصادر APT باستخدام أمر Docker التالي.
$ sudo apt-get update
يمكنك الآن تثبيت حزمة Docker نفسها.
الخطوة 5) بمجرد تحديث مصادر APT، ابدأ بتثبيت حزم Docker على Ubuntu باستخدام أمر Docker التالي.
$ sudo apt-get install docker-ce
يقوم الأمر أعلاه بتثبيت Docker والحزم الأخرى المطلوبة. قبل إصدار Docker 1.8.0، كان اسم الحزمة lxc-docker، وبين إصداري Docker 1.8 و1.13، كان اسم الحزمة docker-engine.
NOTE: Docker لـ Windows يتطلب Windows 10 Pro أو Enterprise الإصدار 14393، أو Windows نظام التشغيل Windows Server 2016 RTM، للتشغيل.
كيفية استخدام Docker باستخدام أوامر Docker الأساسية
إليك كيفية استخدام Docker مع بعض أوامر Docker الأساسية.
الأمر الأساسي الذي يجب عليك تشغيله بعد تثبيت Docker هو docker info، كما ذكرنا سابقًا.
$ sudo docker info
ينبغي أن تحصل على نتيجة مشابهة لما يلي.
كما هو موضح في مثال Docker أعلاه، يمكننا رؤية معلومات حول حاويات Docker: عدد الحاويات قيد التشغيل، أو المتوقفة مؤقتًا، أو المتوقفة تمامًا، وعدد الصور التي تم تنزيلها. والآن، لنحصل على أول صورة لدينا.
$ sudo docker pull alpine
باستخدام هذا الأمر، نخبر Docker بتنزيل صورة alpine، وسحبها من السجل العام بأحدث إصدار، وهو ما يتم تعيينه افتراضيًا.
*alpine عبارة عن صورة Docker بسيطة تعتمد على Alpine Linux مع فهرس حزمة كامل وحجمه 5 ميغابايت فقط.
إذا أردنا تشغيل الصورة كحاوية، فإننا نستخدم الأمر التالي.
$ sudo docker run -i -t alpine /bin/bash
يُرسلنا تشغيل الأمر مباشرةً إلى طرفية Alpine. يُبقي الخيار -i مدخل STDIN مفتوحًا من الحاوية حتى عند عدم اتصالك بها؛ هذا الإدخال القياسي الدائم هو نصف ما تحتاجه لواجهة تفاعلية. أما الخيار -t فهو النصف الآخر، ويُوجه Docker لتعيين طرفية وهمية للحاوية. معًا، يُوفران لنا واجهة تفاعلية داخل الحاوية الجديدة. نُنهي الحاوية باستخدام أمر الخروج البسيط.
الآن، في هذا الدرس التعليمي الأساسي حول Docker، يمكننا تجربة تشغيل Ubuntu صورة.
$ sudo docker run -it ubuntu /bin/bash
لاحظ أن Docker يتحقق من وجود الصورة محليًا، وإذا لم تكن موجودة، يتم سحبها تلقائيًا من مكتبة الصور. مرة أخرى، لدينا واجهة سطر أوامر تفاعلية قيد التشغيل. يمكننا أيضًا تسمية الحاويات أثناء تشغيلها.
$ sudo docker run –-name our_container -it ubuntu /bin/bash
ثم نخرج مرة أخرى. يمكننا أيضاً تشغيل حاوية أنشأناها مسبقاً بدون واجهة تفاعلية.
$ sudo docker start container_name
ونقوم بإيقاف الحاوية عن طريق كتابة الأمر docker stop container_name.
$ sudo docker stop container_name
إذا أردنا رؤية جميع الحاويات قيد التشغيل، فإننا ببساطة نقوم بتشغيل ما يلي.
$ docker ps
بالنسبة لجميع الحاويات، نضيف "-a" في نهاية نفس الأمر، مثل docker ps -a. يعرض هذا الأمر معرف الحاوية، والصورة التي تستخدمها، وتاريخ إنشائها، وحالة تشغيلها، والمنافذ المكشوفة، واسمًا تم إنشاؤه عشوائيًا لتسهيل الإدارة.
عند تشغيل الحاويات، نرغب غالبًا في معرفة مقدار الموارد التي تستخدمها. ولتحقيق هذا الغرض، يمكننا استخدام الأمر التالي.
$ docker stats
يمكنك أيضًا رؤية الصور التي قمت بتنزيلها محليًا، بالإضافة إلى معلومات عنها.
$ sudo docker images
يعرض الأمر في مثال Docker أعلاه كل صورة Docker مع علامة توضح إصدار الصورة، ومعرف الصورة المميز، وتاريخ الإنشاء، وحجم الصورة.
لفهم سبب كون الحاويات تمثل تحسناً كبيراً، من المفيد النظر إلى كيفية تطور المحاكاة الافتراضية.
ما هي الافتراضية؟
في السابق، كان نشر الخدمات عملية بطيئة ومعقدة. كان المطورون يكتبون الشفرة البرمجية، ثم يقوم فريق العمليات بنشرها على أجهزة مادية، حيث كان عليهم مراقبة إصدارات المكتبات والتحديثات ومترجمات اللغات لضمان عمل الشفرة. وفي حال وجود أخطاء أو مشاكل، كانت العملية تبدأ من جديد: يقوم المطورون بإصلاح المشكلة، ثم يقوم فريق العمليات بإعادة النشر.
تحسّنت الأمور مع ظهور برامج إدارة الأجهزة الافتراضية (Hypervisors). تشغل هذه البرامج عدة تطبيقات في وقت واحد. الأجهزة الظاهريةأو الأجهزة الافتراضية، على نفس المضيف، والتي قد تكون قيد التشغيل أو متوقفة. قللت الأجهزة الافتراضية بشكل كبير من وقت الانتظار لنشر التعليمات البرمجية وإصلاح الأخطاء، لكن العامل الحاسم الحقيقي كان حاويات Docker.
وتعود شعبية Docker أيضاً إلى أدوات التنسيق التي تدير الحاويات على نطاق واسع، مثل Kubernetesقبل المتابعة، إليك مرجع سريع لأهم أوامر Docker.
أوامر عامل ميناء هامة
فيما يلي أوامر Docker المهمة:
| أمر | الوصف |
|---|---|
| معلومات عامل الميناء | أمر المعلومات |
| سحب عامل ميناء | قم بتنزيل صورة |
| تشغيل عامل الميناء -i -t image_name /bin/bash | تشغيل الصورة كحاوية |
| عامل ميناء يبدأ Our_container | ابدأ الحاوية |
| عامل ميناء توقف حاوية_اسم | أوقف الحاوية |
| عامل الميناء | قائمة بجميع الحاويات قيد التشغيل |
| احصائيات عامل الميناء | معلومات الحاوية |
| صور عامل ميناء | قائمة الصور التي تم تنزيلها |
| تنظيف عامل الميناء | اقتل جميع الحاويات قيد التشغيل. |
اقرأ هذه أيضاً. أسئلة وأجوبة مقابلة وظيفة عامل ميناء مناسب للمبتدئين وكذلك للمحترفين ذوي الخبرة.

