مقدمة إلى Docker. تطوير صورة Docker بسيطة لخادمك الخاص.
يمكن العثور على النسخة الروسية من المهمة في المستودع.

كوكب الأرض ، في مكان ما في منتصف البحر ، اليوم.
لم تحب أبدًا التحرك. الكثير من الضجة ، القليل من العمل. لكنك تمكنت من العثور على وظيفة رائعة في مدينة أخرى لتغمر نفسك في عالم DevOps. وأنت لست من يدع القليل من المتاعب تدمر خططك.
من نافذة المقصورة الخاصة بك ، تسمع صوت الأمواج ، والسفن تهتز بهدوء ، وتتذكر روايتك المفضلة حول البحر - "Moby Dick". على الرغم من أن المؤامرة بعيدة كل البعد عن الوضوح ، حيث تربطك العديد من عمليات الاستغناء عن الغنائية والتأملات الفلسفية ، إلا أنك ، مثل أي شخص آخر ، تربط هذا الكتاب في المقام الأول مع Moby Dick نفسه - The White Whale.
"هم ... حوت أبيض ..." هذا هو المكان الذي تتذكر أنه خلال الرحلة الطويلة تريد العمل على قفص الاتهام.
NGINX (المعلن "Engine-X") هو خادم وكيل عكسي مفتوح المصدر لـ HTTP و HTTPS ، إلخ. يتم استخدام Nginx أيضًا كموازن تحميل وخادم ويب وتخزين HTTP. يركز مشروع NGINX على التوازي العالي والأداء العالي وانخفاض استخدام الذاكرة.
لدى Nginx عملية رئيسية واحدة والعديد من عمليات العمال. تتمثل المهمة الأساسية للعملية الرئيسية في قراءة التكوين والتحقق منه وإدارة عمليات العامل. تقوم عمليات العامل بالمعالجة الفعلية للطلبات.
يتم تعريف كيفية عمل Nginx ووحداته في ملف التكوين. بشكل افتراضي ، يسمى ملف التكوين nginx.conf
الحاوية عبارة عن "ملف قابل للتنفيذ" جديد يتضمن جميع التبعيات التي يحتاجها المنتج.
الميزة الرئيسية للحاويات هي عزل التبعيات ونقطة بدء تشغيل واحدة بسيطة.
المصطلحات الأساسية:
Docker عبارة عن منصة مصممة لتطوير ونشر وتشغيل التطبيقات في الحاويات. Docker هي أداة الحاويات القياسية "Defacto" في الصناعة ، لكنها ليست الأولى أو الأخيرة بين تقنيات الحاويات.
وكان رواد حاويات Docker الأجهزة الافتراضية. الجهاز الظاهري ، مثل الحاوية ، يعزل التطبيق وتبعياته من البيئة الخارجية. ومع ذلك ، فإن حاويات Docker لها مزايا على الأجهزة الافتراضية. على سبيل المثال ، من السهل جدًا تنفيذها ، وتستهلك موارد أقل ، والبدء والتشغيل بشكل أسرع.
صورة Docker تتكون من طبقات. تصف كل طبقة بعض التغييرات المراد تنفيذها على البيانات الموجودة على الحاوية الجارية. هيكل الروابط بين الطبقات هو التسلسل الهرمي. هناك طبقة أساسية يتم فيها "الطبقات الأخرى". يتم استخدام Dockerfile لإنشاء صورة. كل تعليمات في ذلك تخلق طبقة جديدة.
Dockle هي أداة فحص أمان صورة الحاوية التي يمكن استخدامها للعثور على نقاط الضعف.
الميزات الرئيسية وفوائد قفص الاتهام :
Docker Compose هي أداة للتعامل مع المهام المتعلقة بنشر المشاريع. يمكن أن يكون Docker Compose مفيدًا إذا تم استخدام العديد من الخدمات للحفاظ على تشغيل المشروع.
يتم استخدام Docker Compose لإدارة حاويات متعددة في وقت واحد جزء من التطبيق. تقدم هذه الأداة نفس ميزات Docker ، ولكنها تسمح بالعمل مع تطبيقات أكثر تعقيدًا ، مثل الخدمات الدقيقة.
نتيجة للعمل ، يجب عليك تقديم تقرير عن أول مهمتين. يصف كل جزء من المهمة ما يجب إضافته إلى التقرير بمجرد اكتماله. يمكن أن يكون هذا إجابات على الأسئلة ولقطات الشاشة وما إلى ذلك.
نتيجة للمهمة الثالثة ، يجب عليك توفير ملفات المصدر لتشغيل خادم الويب.
نتيجة للمهام الرابعة والخامسة ، يجب عليك توفير Dockerfiles.
نتيجة للمهمة السادسة ، يجب عليك تقديم ملف docker-corm.yml و Dockerfiles اللازمة لتشغيله (إن لم يتم توفيره مسبقًا).
نظرًا لأن الهدف النهائي لممارستك الصغيرة ، فقد اخترت على الفور كتابة صورة Docker لخادم الويب الخاص بك ، لذلك تحتاج أولاً إلى التعامل مع صورة Docker جاهزة للخادم. لقد اخترت nginx بسيطة جدا.
== مهمة ==
docker pull . docker images . docker run -d [image_id|repository] . docker ps . docker inspect [container_id|container_name] . docker stop [container_id|container_name] . docker ps . docker restart [container_id|container_name] . ملاحظة: لا تقم بتحميل الملفات الثقيلة (> 10 ميغابايت) إلى git.
صورة Docker والحاوية جاهزة. الآن يمكننا أن ننظر في تكوين NGINX وعرض صفحة صفحة.
== مهمة ==
docker cp . docker rmi [image_id|repository] دون إزالة الحاوية أولاً. حان الوقت لأخذ استراحة صغيرة من Docker للتحضير للمرحلة الأخيرة. حان الوقت لكتابة الخادم الخاص بك.
== مهمة ==
Hello World! . الآن كل شيء جاهز. يمكنك البدء في كتابة صورة Docker للخادم الذي تم إنشاؤه.
== مهمة ==
عند كتابة صورة Docker تجنب مكالمات متعددة من تعليمات التشغيل
يمكن تثبيت Nginx داخل Docker نفسه ، أو يمكنك استخدام صورة جاهزة مع Nginx كقاعدة.
docker build ، وتحديد الاسم والعلامة. docker images أن كل شيء تم إنشاؤه بشكل صحيح. *إذا تم كل شيء بشكل صحيح ، بعد حفظ الملف وإعادة تشغيل الحاوية ، يجب تحديث ملف التكوين داخل صورة Docker نفسه دون أي خطوات إضافية
بمجرد أن تكتب الصورة ، ليس من الجيد أبدًا التحقق من ذلك للأمان.
== مهمة ==
dockle [image_id|repository] . هناك ، لقد انتهيت من الاحماء. انتظر لحظة ... لماذا لا تحاول تجربة نشر مشروع يتكون من عدة صور Docker في وقت واحد؟
== مهمة ==
docker-compose build و docker-compose up . اضغط هنا لترك ملاحظاتك في المشروع . يحاول فريق المنتج حقًا جعل تجربتك التعليمية أفضل.