‫الآن ماذا عن Docker Registry في سرب؟
‫الأمر لا يختلف كثيرًا في الواقع.
‫الشيء الجميل هو أنه لا يتعين علينا تشغيل أمر تشغيل عامل ميناء ، يمكننا في الواقع استخدام أمر خدمة عامل
‫إرساء كما اعتدنا أو ملف مكدس كما تحدثنا في قسم سابق. سيعمل بنفس الطريقة التي عملنا بها
‫مع المضيف المحلي لأنه يمكننا في الواقع إخبار السرب بالتحدث مع
‫نفسه من أجل التسجيل.
‫لذلك سوف نستخدم نفس العنوان 127 ولا يتعين علينا تمكين السجل غير الآمن لأن
‫هذا مسموح به بالفعل بواسطة Docker Engine. تسمح شبكة التوجيه بشكل أساسي لجميع العقد بالتحدث إلى السجل
‫كما لو كان محليًا
‫، صحيحًا ، لأن هذا نوع من سحر شبكة التوجيه.
‫أريد فقط أن أذكرك أن هذه حاوية بيانات ثابتة.
‫يقوم بتخزين البيانات التي يجب أن تستمر بمرور الوقت.
‫لذلك سيتعين عليك التعامل مع سيناريو إنتاج في العالم الحقيقي. سيتعين عليك التعامل مع مشغل وحدة
‫التخزين وكيفية التعامل ، واتخاذ قرار أساسي حول كيفية تخزين البيانات.
‫لكننا لن نفعل ذلك هنا.
‫في هذا المثال مع Swarm ، سأقوم بالفعل بتغييره قليلاً ولن أستخدم مجموعة العقد الثلاثة
‫التي استخدمتها في قسم سابق.
‫سنستخدم Play With Docker هذه المرة. إذا ذهبت للعب مع عامل الرصيف. com ، سنثبت في الواقع
‫أننا لسنا إنسانًا آليًا ، وبعد ذلك سيطرح عليّ بعض الأسئلة العشوائية
‫، قد يسألك ، وربما لا.
‫ثم نحن في.
‫في الآونة الأخيرة ، قام Play With Docker بتمكين ميزة جديدة تسهل
‫علينا إعداد نموذج اختبار وذلك تحت كائن مفتاح الربط.
‫أعتقد أن هذا هو مفتاح الربط. ترى أن هناك خيارات هنا هي في الأساس قوالب
‫لإعداد سرب لذا فبدلاً من إظهار هذا الإعداد كما فعلنا بالفعل ، سأقوم فقط بإعداد خمسة
‫مديرين ، بدون عمال ، أعطيها ثانية. ستضع كل هذه. ما سنبدأ به هو سرب
‫من خمس عقد. سنقوم فقط بتشغيل تسجيل سريع حقيقي لإظهار
‫كيف أنه يشبه إلى حد كبير الشيء نفسه كما كان من قبل.
‫حسنا. الآن لدي خمس عقد للمدير وإذا قمت بعمل docker node ls ، يمكنك فقط أن ترى أن لدي خمسة
‫منها.
‫حسنًا. لدينا سرب. دعنا في الواقع نقوم فقط بتشغيل السجل
‫ولكن هذه المرة
‫سنستخدم الخدمة لإنشاء واستدعاء التسجيل.
‫سنقوم بنشره مرة أخرى مثل آخر مرة ، المنفذ 5000 ، وسنقوم
‫بنشره ، سجل الصور.
‫ها أنت ذا.
‫يمكننا عمل سجل ps لخدمة docker وهو يشير إلى أنه قيد التشغيل. في Play With Docker ، نحصل على هذا الزر الصغير
‫الجميل الذي يظهر عندما ننشر تطبيق ويب.
‫إنه يعرض المنفذ بالفعل ويعطي عنوان URL لطيفًا صغيرًا ودودًا يمكننا اختبار تطبيق الويب أو نقطة
‫نهاية الويب.
‫لكنك تعلم مع التسجيل ، في جذره ،
‫أنه لا شيء ، لا يوجد شيء يتم إرجاعه بخلاف HTTP 200.
‫ما يمكننا القيام به على الرغم من ذلك هو أنه مع أي سجل ، يمكننا بالفعل الذهاب وإلقاء نظرة على الكتالوج
‫وسيعيد ذلك مصفوفة JSON بسيطة.
‫ستلاحظ أن المستودع الخاص به فارغ.
‫كان بإمكاننا فعل ذلك في المحاضرة السابقة باستخدامه محليًا ، لكن دعنا نلعب قليلاً
‫هنا لأننا في هذا الحل السهل مع Play With Docker.
‫اسمحوا لي أن أفعل نفس الشيء عندما أقوم بسحب عامل الإرساء كما كان من قبل في عالم الترحيب. سأقوم الآن بتذكر العلامة مرة أخرى ، لذلك سنقول
‫العلامة مرحبًا بالعالم وبعد ذلك سأقوم بإعادة تسميتها أو إعادة الوسم إلى مستودع
‫جديد 127. 0. 0. 1 5000 ، سأقوم بدفع
‫عامل الإرساء.
‫اسمحوا لي أن أقوم بتكبير هذا حتى يكون من الأسهل علينا رؤيته.
‫دفع عامل الميناء.
‫ثم سنقوم بعمل 127. 0. 0. 1 حسنًا.
‫الآن دفع ذلك إلى مستودعنا. الطريقة
‫التي يمكننا بها التحقق بالفعل ، بسرعة كبيرة ، هي إذا انتقلت إلى علامة التبويب الأخرى هذه وسأقوم بالتحديث ، ستلاحظ أن المستودعات تعرض الآن اسم الريبو المتاح.
‫عندما نضيف المزيد إليها ، سيؤدي ذلك في الواقع إلى توسيع المصفوفة وسنراها جميعًا هناك.
‫في هذه المرحلة ، يمكنني فعل ما كان من قبل ، تشغيل تلك الصورة ، ستعمل تمامًا كما توقعنا وتوسيع
‫نطاقها. لإثبات هذه النقطة
‫فقط ، يمكنني عمل nginx لسحب عامل الإرساء.
‫يمكننا تشغيل خادم ويب nginx
‫بسيط ، وعلامة docker nginx ، ثم دفع
‫عامل الإرساء ، ودفع ذلك احتياطيًا
‫إلى السجل الخاص بنا.
‫ثم سترى هنا ، أن لدي اثنين الآن. لدي مستودعين هناك. ثم إذا قمت بإنشاء
‫خدمة عامل إرساء ، تمامًا
‫كما نفعل عادةً
‫، حسنًا ، سنقوم بعمل nginx
‫80 80 ، لكن هذه المرة سأحدد الصورة على هذا النحو.
‫نحن نخبرها أننا لا نريد استخدام صورة Docker
‫Hub ،
‫صحيح ، لبدء الخدمة ونريد استخدامها.
‫سنقوم الآن بإضافة خيارين.
‫سأقوم بالفعل بعمل نسخ متماثلة 5 ، بحيث يبدأ nginx واحد في كل عقدة ، وبعد ذلك
‫سنقوم بعمل خيار جديد بدأ في الظهور في 17. 04 أعتقد أن فصل يساوي خطأ وهذا سيسمح لنا برؤية الأمر قيد
‫التشغيل في الوقت الفعلي.
‫سترى أنه يستعد ، مما يعني أنه يقوم أساسًا بتنزيل تلك الصورة
‫من السجل إلى العقد ، ثم يصبح جاهزًا ثم يتم تشغيله.
‫ها نحن ، انتهينا.
‫إذا سحبت ، ستلاحظ من الأعلى أنه يعرض الآن المنفذ 80 لأنه خدمة
‫جديدة ، وسترى أنه لدي هنا وهو يعمل.
‫المثير للاهتمام في هذا هو أنه عندما تكون في سرب ، لا يمكنك استخدام صورة موجودة على عقدة واحدة فقط
‫، أليس كذلك؟
‫يجب أن يكون السرب قادرًا على سحب الصور من جميع العقد من مستودع ما في
‫سجل يمكنهم الوصول إليه جميعًا. لم أذكر ذلك في قسم السرب ، لكنها نقطة مهمة
‫لأن هذا يعني أنه لا يمكنك فقط إنشاء صورة خاصة بك على أحد السكان المحليين ، مثل لنفترض في هذه الحالة ، مدير 1 ، ولن يقوم
‫المدير 2 بذلك أن تكون قادرًا على الانتقال إلى manager1 والحصول عليه ، أليس كذلك؟
‫عليهم جميعًا القيام بالدفع والسحب من مستودع مركزي في مكان ما.
‫ولكن لأنني قمت بتشغيل السجل كخدمة هنا ، فيمكنهم جميعًا معرفة كيفية الوصول إلى 127 صفر صفر واحد
‫، وبعد ذلك ستوجههم شبكة التوجيه نحو الحاوية الصحيحة ، أينما يعمل هذا التسجيل
‫على إحدى العقد ، ثم سوف يسحب صورة nginx إلى جميع العقد كما يجب أن تكون هناك.
‫إذا كنت قد أنشأت خدمة docker ps nginx ، فسترى أن هناك واحدة تعمل على كل عقدة ، وسترى أن الصورة
‫التي تستخدمها هي تلك الموجودة في السجل الخاص بنا.
‫حسنًا ، هذا فقط لإظهار كيف يتشابه Swarm مع Docker Registry.
‫في النهاية ذكرنا نوعًا ما ، تلك المعلومات الجديدة ، التي تحتاجها للتأكد من أن صورك
‫التي تستخدمها في سرب يمكن الوصول إليها فقط في أي سجل سيكونون فيه.
‫يجب أن تكون في متناول جميع العقد. يجب أن يكون ذلك واضحًا ، صحيح ، لأن العقد لا يمكنها
‫مشاركة الصور مع بعضها البعض. في الواقع ، يتعين عليهم جميعًا سحبها من السجل وبالتالي يجب
‫أن يكونوا جميعًا قادرين على الوصول إليه.
‫يحدث فقط أن شبكة التوجيه تجعل تشغيل ذلك أسهل بكثير.
‫تمامًا مثل تلميح ProTip الصغير الأخير ، إذا لم يكن عليك تشغيل السجل الخاص بك ، فقد يكون من الرائع القيام بذلك
‫، فما عليك سوى استخدام أحد تلك المستضافة على الإنترنت.
‫إنها زائدة عن الحاجة.
‫لديهم مراقبة وجميع الأشياء المناسبة المتعلقة بإدارة التخزين.
‫عادة ما تكون ، خاصة إذا كنت تعمل بمصادر
‫مفتوحة ، معظمها مجاني.
‫إذا كنت تفعل ذلك لأسباب خاصة وتحتاج إلى تخزين صور خاصة ، فمعظمها تكلفة معقولة جدًا ، أعني
‫تكلفة منخفضة جدًا لتخزين صورك.
‫لذا ، سواء كنت تستخدم AWS أو Quay أو Docker Hub أو الكثير من الخيارات المتاحة ، أود أن
‫أقول جرب تلك الخيارات أولاً واستخدم فقط السجل الخاص بك إذا كان لديك بالفعل نوع من المتطلبات غير المتصلة
‫بالإنترنت حيث يجب أن يكون متاحًا بدون الإنترنت ، أو إذا كان هناك بعض القيود على الأمان لا
‫يمكنك حقًا استخدام أي نظام أساسي مستضاف. لأنها حقًا واحدة من تلك الأشياء حيث تكون أداة مساعدة وهي رائعة
‫عندما يمكنك الاعتماد فقط على شخص آخر لحل هذه المشكلة نيابة عنك.
‫لذلك آمل أن تتلاعب بها وتستمتع ببعض المرح.
‫الآن بعد أن لم تقم بهذه المحاضرة ، تذكر أن تقوم بالتنظيف حتى تتمكن من البدء بسجل جديد في
‫المحاضرة التالية.