‫ستكون هذه هي المحاضرة الأولى حيث سنستخدم بالفعل عدة مضيفات أو عقد أو حالات
‫أو أي شيء تريده ... أنظمة تشغيل متعددة. سنقوم بإعداد سرب من 3 عقد عبر
‫كل هذه العقد الثلاثة.
‫للأسف لا يمكننا القيام بهذا الجزء باستخدام Docker المدمج في جهازك
‫لأن ذلك سيوفر لنا نظام تشغيل واحد فقط. نحتاج إلى ثلاثة أنظمة تشغيل Linux للعب مع هذه المجموعة التالية من الميزات.
‫الخيار الأول الذي ستحصل عليه هو استخدام play-with-docker. كوم.
‫إنها أسهل طريقة للبدء.
‫يأتي مع Docker مثبتًا مسبقًا. يستغرق الأمر ثوانٍ لتوفير ثلاث آلات
‫مختلفة ، ولا يتطلب أي استثمار من جانبك. لكن هذا يعني أنه كل أربع ساعات سوف يمسح كل العمل الذي أنجزته.
‫لذا ، إذا كنت تعتقد أنك ستفعل بقية هذا القسم على مدار الأيام ، فقد
‫لا يكون هذا هو الخيار الأفضل لك. ولكن إذا كنت ستركز لبضع ساعات ، فبإمكانك بالتأكيد
‫اجتياز معظم ، إن لم يكن كل ، عناصر سرب العقدة المتعددة باستخدام Play With Docker في جلسة واحدة.
‫خيار آخر لديك هو أنه يمكنك استخدام آلة الإرساء ، وهو ليس شيئًا تحدثنا عنه حتى الآن ، ولكنه
‫أداة سطر أوامر يتم تثبيتها بالفعل مع Docker لنظام التشغيل Windows و Docker لنظام التشغيل Mac.
‫يمكنك تنزيله لنظام Linux ، وهو في الأساس أداة أتمتة لتوفير الأجهزة الافتراضية محليًا
‫وعلى الإنترنت ، ثم إعداد Docker تلقائيًا نيابة عنك.
‫الطريقة الافتراضية التي تعمل بها هي مع VirtualBox ، والتي يمكنك تثبيتها مجانًا. ولكن هذا يعني أنه إذا كنت ستشغل ثلاثة أجهزة
‫افتراضية محليًا ، فربما يحتاج كل واحد منهم إلى مجموعة من ذاكرة الوصول العشوائي أو نحو ذلك لتشغيل
‫الكثير من هذه الأمثلة. لذلك ستحتاج إلى جهاز يحتوي على كمية جيدة من ذاكرة الوصول العشوائي بداخله. خيار آخر ، وهو الخيار الذي سأستخدمه
‫بشكل افتراضي في الكثير من هذه العروض التوضيحية والمشي خلالها ، هو DigitalOcean.
‫أوصي فقط بـ DigitalOcean لمجرد أن لديهم أرخص وأسهل خدمة للبدء ، ويقومون
‫بتشغيل كل شيء على SSD لذا فهو لطيف وسريع. يمكنك في الواقع استخدام هذا في إعداد مشابه
‫جدًا لما سيكون الإنتاج لأنك تستخدم ثلاثة أجهزة افتراضية فعلية ، في السحابة
‫، ويستغرق تشغيل كل جهاز افتراضي حوالي دقيقة.
‫إذا كنت تعتقد أن هذا قد يكون خيارًا ، فيمكنك استخدام رمز الإحالة الخاص بي
‫والمراجع إلى هذا القسم للحصول على أول 10 دولارات لك مجانًا.
‫إذا كنت ستستغرق بضعة أيام فقط لتجاوز هذا السرب ، فيمكنك توفير ثلاثة ، 10 دولارات
‫شهريًا ، وجعلها تعمل لأيام أو أسبوع.
‫وقد يتناسب ذلك مع ميزانية 10 دولارات ، لذا لن يكلفك ذلك أي شيء من الناحية الفنية.
‫ثم أخيرًا ، هناك العديد من الطرق لتثبيت Docker ، وهذا كل ما تحتاجه حقًا
‫هو ثلاث آلات مثبت عليها Docker. يمكنك استخدام Docker Machine.
‫يحتوي على برامج تشغيل مدمجة تسمح لك باستخدامه لتوفير مثيلات Amazon ، أو مثيلات Azure ، أو DigitalOcean Droplets
‫، أو عقد Google Compute أو أي مكان يمكنك الحصول على جهاز ظاهري Linux ، يمكنك بالفعل تثبيت Docker باستخدام برنامج
‫نصي آلي من احصل على. عامل ميناء. كوم.
‫بصراحة ، أنا أفضل الحصول عليها. عامل ميناء. com فقط لأن Docker Machine قد توفر لك بضع
‫خطوات ، خاصة لمواقع مثل Amazon و Azure التي تتطلب منك توفير الكثير من الأشياء المختلفة
‫قبل أن تتمكن من مجرد توفير جهاز افتراضي. لكن من المحتمل أنك لن تستخدم Docker
‫Machine في الإنتاج.
‫إنها أداة لأتمتة بيئات التطوير والاختبار ببساطة. لم يتم تصميمه حقًا لإعداد جميع إعدادات
‫الإنتاج التي قد تحتاجها لسرب متعدد العقد.
‫لا يوجد شيء خاطئ بطبيعته ، ولكن عادة ما تحصل عليه. عامل ميناء. يعمل com على جميع توزيعات Linux
‫الرئيسية ولا يستغرق وقتًا أطول من استخدام Docker Machine نفسه.
‫سأقدم لكم مثالًا سريعًا حقًا على مجرد الحصول على أي من هذه السيناريوهات إلى النقطة
‫التي تم فيها تثبيت Docker. ثم سيكونون جميعًا متشابهين جدًا في الطريقة التي
‫نخلق بها السرب بالفعل ونؤدي خدماتنا.
‫لذلك لا تعتقد أنه يجب عليك القيام بذلك بالطريقة التي أفعلها بها.
‫في الحقيقة نحن نحاول فقط الحصول على معلومات Docker لاستعادة المعلومات بالفعل ، ثم
‫للتأكد فقط من أن العقد الثلاثة لديها وصول للشبكات لبعضها البعض وأنهم على شبكة متصلة جيدًا.
‫لذلك من الناحية المثالية يجب أن يكونوا في نفس الشبكة.
‫إذا كنت ستستخدم Play With Docker ، فأنت في الواقع تذهب للعب مع docker. com وتحقق من المربع لأنني
‫لست روبوتًا.
‫وإذا كان يمنحك شاشة CAPTCHA ، فما عليك سوى المتابعة.
‫حسنا. ستلاحظ أن العد التنازلي هو أربع ساعات.
‫ولكن إذا قمت فقط بالنقر فوق مثيل الإنشاء ، ثم قمت بالنقر فوقه مرتين أخريين ، فسيتم إنشاء ثلاث بيئات افتراضية
‫بسرعة كبيرة.
‫كملاحظة جانبية ، هذا في الواقع يستخدم Docker في Docker ، وهي تقنية رائعة جدًا
‫حيث نقوم بالفعل بتشغيل Docker داخل حاوية Docker.
‫ولكن في هذا الإعداد مع Play With Docker ، الذي تم إنشاؤه بواسطة قباطنة Docker الآخرين وفريق Docker ، من
‫الصعب حقًا تمييز الفرق.
‫إذا ذهبت إلى node1 ، يمكنني بالفعل رؤية أن معلومات Docker تعطيني أحدث إصدار. وإذا حاولت حتى إجراء اختبار ping node2 ، فإنه يتعرف
‫بالفعل على الأسماء المألوفة ، لذلك سيسهل التواصل بينهما ذهابًا وإيابًا.
‫لذلك ، إذا كان هذا شيئًا تريد تجربته ، فهذه طريقة رائعة وسهلة على الأجهزة منخفضة الطاقة أو إذا
‫كنت لا ترغب في تخصيص الوقت لإعداد بيئة لمدة أربع ساعات قادمة.
‫الخيار الثاني هو استخدام آلة الرصيف. إذا كنت قد قمت بتثبيته ، فيجب أن يكون الإصدار 10 على الأقل
‫إن لم يكن أحدث.
‫ستعرف ما إذا كان مثبتًا لأنك ستكتب أمر docker-machine من سطر الأوامر
‫الخاص بك وسيعمل أو لن يعمل.
‫إذا كنت بحاجة إلى تنزيله لنظام التشغيل Linux الخاص بك ، فيمكنك الانتقال إلى Docker Documentation
‫، والذي سيعطيك في الواقع خط تجعيد سريع لتنزيله.
‫إذا كنت تستخدم ToolBox على نظامي التشغيل Windows 7 و 8 ، أو Docker لنظام التشغيل Windows على نظام التشغيل Windows 10 ، أو Docker لنظام
‫التشغيل Mac على نظام التشغيل Mac OS ، فسيتم تحديثه بالفعل على أنظمة التشغيل هذه من أجلك.
‫إذا كنت تريد استخدام خيار VirtualBox ، وهو الخيار الافتراضي ، فما عليك سوى الانتقال
‫إلى Virtualbox. org وقم بتنزيل أحدث إصدار لنظام التشغيل الخاص بك. وليس عليك حتى القيام بأي شيء باستخدام VirtualBox.
‫يحتاج فقط إلى التثبيت. وبعد ذلك من سطر الأوامر ، يمكنك فقط كتابة docker-machine
‫create node1 ، وسيتم تشغيل هذا بالفعل من خلال إنشاء آلة افتراضية باستخدام BusyBox ، وهو توزيع
‫لينكس خفيف الوزن للغاية.
‫سيتم تشغيل هذا في الواقع من خلال إنشاء جهاز Linux خفيف الوزن للغاية ، وستقوم
‫فقط بتكرار هذين الأمرين للعقدة 2 و 3.
‫إذا كنت بحاجة إلى مزيد من المعلومات حول Docker Machine ، فيمكنك بالفعل إلقاء نظرة على قسم
‫المراجع الخاص بي للحصول على روابط البرنامج التعليمي.
‫بمجرد إنشاء أجهزتك ، يكون لديك حقًا خياران لكيفية الوصول إلى هذه الأجهزة.
‫يمكنك إما استخدام docker-machine ssh ، ثم اسم العقدة التي أنشأتها والتي ستنتقل بك مباشرة إلى
‫هذا الجهاز.
‫أو يمكنك استخدام أمر البيئة.
‫لذا فإن الأمر docker-machine env ، ثم اسم الجهاز الذي تريده ، سيعطيك بعض المخرجات ، ويمكنك إما قص هذه الخيارات ولصقها في سطر الأوامر
‫الخاص بك أو يمكنك نسخ ولصق الخيار السفلي ، وهذا سوف في الواقع ، أنشئ متغير البيئة بحيث عندما
‫أقوم بتشغيل أمر docker الخاص بي ، لأنه مرة أخرى ، يحتاج Docker CLI فقط إلى معرفة مضيف Docker
‫الذي يجب التحدث إليه. وبشكل افتراضي ، يتحدث إلى جهازك
‫المحلي.
‫لكن هذا أعاد برمجته للتحدث إلى عقدة Docker
‫Machine 1.
‫إذا قمت بإجراء معلومات عامل الإرساء ، فسترى أن اسمه هو node1 لأن هذا هو الاسم الذي أعمل عليه الآن بالفعل.
‫في المثال الأخير ، سأستخدم DigitalOcean ، التي أنشأت حسابًا عليها.
‫هنا ، يسمون الخوادم Droplets. أوصي إذا لم يكن لديك سبب محدد لتشغيل
‫نظام تشغيل آخر ، لتبدأ بـ Ubuntu 16. 04 لأن هذا يميل إلى أن يكون أول توزيعة Linux تدعم ميزات
‫Docker الأحدث.
‫هذا هو الوضع الافتراضي هناك.
‫ثم أوصي لبقية هذه الدورة لنا باستخدام خادم 10 دولارات شهريًا. قد تتمكن من الحصول على خادم بقيمة 5 دولارات
‫شهريًا ، ولكن قد يكون بطيئًا بعض الشيء خلال بعض العروض التوضيحية
‫اللاحقة عندما نقوم بمراقبة الحاويات وتسجيلها أعلى تطبيقاتنا.
‫ثم يمكنك اختيار مركز البيانات الأقرب إليك. ثم الخيار الآخر الوحيد هو إضافة مفتاح SSH.
‫إذا لم تكن على دراية بكيفية إنشاء مفتاح SSH الخاص بك محليًا ثم تحميل الجمهور إلى DigitalOcean
‫، فهناك برنامج تعليمي
‫رائع لديهم من أجله يمكنك العثور عليه في موارد هذا القسم.
‫في الأسفل ، سأقوم بإنشاء ثلاث آلات ، وسأسميها العقدة 1 و 2 و 3.
‫ثم أحتاج إلى الانتظار لمدة 60 ثانية تقريبًا وسيكونون جاهزين لي.
‫يمكنك فقط استخدام عناوين IP هنا ... القفز على هذه الآلات.
‫النقر فوق زر النسخ ثم ssh root @ عنوان IP.
‫وإذا تم إعداد مفتاح SSH بشكل صحيح على جهازك ، فسيتم تسجيل الدخول تلقائيًا باستخدام هذا
‫المفتاح.
‫لكن في قسم الموارد ، أعطيتك مثالاً على كيفية إعداد ملف. ssh الذي سيسمح لك بالحصول على هذه العقد الثلاثة
‫في تكوين بحيث يمكنك ببساطة الاتصال بهم node1 ، node2 ، node3 ، بدلاً
‫من الاضطرار إلى تذكر عناوين IP الخاصة بهم ، في حال كنت ستقوم
‫بذلك على مدار عدة أيام . إنها حقًا طريقة سهلة للدخول إلى هذه الخوادم والخروج منها.
‫إذا كنت قد استخدمت Docker Machine ، أو إذا كنت تستخدم Play With Docker ، فإن Docker مثبت بالفعل
‫وستكون جاهزًا لإنشاء سربك.
‫ولكن إذا كنت تستخدم DigitalOcean ، أو تقوم بتشغيل VMs الخاصة بك ، فأنت بحاجة إلى تثبيت Docker.
‫أسهل طريقة للقيام بذلك ، والتي أحب استخدامها ، هي استخدام البرنامج النصي مرة أخرى. عامل ميناء. كوم.
‫يمكنك الاطلاع على أمثلة هنا حول كيفية استخدام هذا البرنامج النصي للحصول على إصدار الإنتاج الحالي
‫من Docker على جهازك.
‫الآن ، تم تثبيت أحدث إصدار من Docker على جميع الخوادم الثلاثة ونحن على استعداد
‫لإعداد سربنا.
‫مرة أخرى ، كل ما هو مطلوب هو أن هذه العقد الثلاثة لديها شبكة قوية مع بعضها البعض ومنافذ
‫محددة مفتوحة.
‫إذا كنت مهتمًا بمنافذ السرب ، فابحث في موارد هذا القسم حيث لدي بالفعل
‫رابط لقائمتي الخاصة بمنافذ جدار الحماية اللازمة لكي يعمل Swarm.
‫إذا كنت تتذكر من قبل ، فقد قمنا بعمل سرب عامل ميناء. الآن ، في هذه الحالة ، وهو أمر شائع جدًا في الخوادم
‫السحابية ، يريدنا تحديد عنوان IP للإعلان عن خدمة Swarm.
‫تريد استخدام عنوان IP يمكن الوصول إليه من الخوادم الأخرى.
‫في هذه الحالة ، سأستخدم عنوان IP العام لمضيف DigitalOcean الخاص
‫بي.
‫وها نحن ذا.
‫حتى الآن ، هذا تمامًا كما هو الحال في أجهزتنا المحلية.
‫هذه المرة ، على الرغم من ذلك ، سأقوم بنسخ أمر الانضمام إلى السرب وانتقل إلى العقدة 2 وإضافته.
‫وها نحن ذا.
‫هذه العقدة هي الآن جزء من السرب.
‫نعود إلى العقدة 1 ، عقدة عامل الإرساء ls ، والآن لدينا اثنان.
‫ستلاحظ أن العقدة الثانية ليست سوى عامل. لأنه كما هو مذكور ، إذا أردنا أن يكون مديرًا ، كان يجب أن نحصل
‫على هذا الرمز المميز للمدير. لكن لا تقلق. يمكننا بالفعل تحديث هذا العامل لترقيته
‫إلى كونه مديرًا.
‫ولكن إذا انتهينا من العقدة 2 ، لاحظ أنه لا يمكنني استخدام أوامر Swarm. لأن العمال ليسوا متميزين حقًا.
‫ليس لديهم وصول للسيطرة على السرب.
‫لذلك لن يكونوا قادرين على استخدام أي من أوامر Swarm التي اعتدنا استخدامها على المديرين.
‫مرة أخرى على node1 والمدير ، سأقوم بتحديث عقدة عامل الإرساء ...
‫ما كنت أفعله هناك هو الضغط على Tab لإكمال علامة التبويب ، وهي ميزة رائعة دائمًا
‫في Docker ، خاصة مع العديد من الميزات. كان يرشدني خلال كل خطوة من خطوات كيفية استخدام أمر التحديث
‫هذا.
‫لقد انتهيت الآن من هذا التحديث النهائي وقد تغيرت العقدة 2.
‫الآن إذا قمت بإجراء عقدة عامل الإرساء الخاصة بي ، فسترى أنه يمكن الوصول إليها الآن.
‫لكن العقدة الأصلية لا تزال هي الرائدة. بالمناسبة ، النجمة الصغيرة؟ هذا يعني فقط أن هذه هي العقدة
‫التي تتحدث إليها حاليًا.
‫بالنسبة إلى node3 ، دعنا نضيفه كمدير افتراضيًا.
‫نحتاج إلى العودة إلى قيادتنا الأصلية لسرب عامل الإرساء ، ومن ثم نحتاج إلى الحصول على مدير
‫رمز الانضمام.
‫يمكنك الحصول على هذه الرموز في أي وقت.
‫ليس عليك كتابتها أو حفظها.
‫إنها جزء من تكوين السرب ويتم تخزينها بشكل مشفر على القرص ، لذلك لا تقلق بشأن ذلك.
‫يمكنك أيضًا تغييرها في حالة تعرضها للفضح أو ربما تحصل على خادم قد يكون به ثغرة أمنية
‫، وتريد التأكد من أنه لا يمكن لأي عقد الانضمام إلى السرب من المفتاح القديم ، يمكنك
‫بالفعل تدوير هذه المفاتيح .
‫سأقوم بنسخ هذا ، ولصقه في node3.
‫وها نحن ذا. مرة أخرى على node1.
‫إذا قمت بعمل docker node ls مرة أخرى ، فسترى أن لدي ثلاث عقد. وجميعهم يتمتعون بحالة مدير
‫تشير إلى أنهم مديرين.
‫إذن لدينا الآن سرب مكون من 3 عقد ، وفائض عن الحاجة ، مع ثلاثة مديرين. لنفعل الشيء نفسه الذي فعلناه سابقًا
‫، حيث أنشأت خدمة عامل ميناء جبال الألب بينغ
‫8. 8. 8. 8 فقط هذه المرة
‫، دعنا نعطيها ثلاث
‫نسخ متماثلة.
‫ثم قم بعمل ls لخدمة الرصيف
‫، وسنرى أن لدينا ثلاثة من ثلاثة
‫قيد التشغيل بالفعل.
‫إذا قمت بعمل docker node ps ، يمكنني بالفعل رؤية العقدة المحلية الخاصة بي تقوم بالفعل بتشغيل هذه المهمة أو الحاوية.
‫يمكنني في الواقع تحديد العقدة ، node2 ، وسوف تعطيني فقط الحاويات التي تعمل على node2.
‫إذا كنت أرغب في الحصول على قائمة كاملة ، فيمكنني تقديم خدمة عامل إرساء ، ثم البني النائم هو الاسم
‫الذي أعطته لخدمتنا. وسترى هنا .. اسمحوا لي بتوسيع الشاشة قليلاً.
‫يمكنك أن ترى هنا أنه يسرد جميع مهامنا الثلاثة.
‫بمجرد إنشاء هذا السرب ، لن تحتاج عادةً إلى كتابة أوامر في
‫جميع العقد المختلفة. يمكنك حقًا تشغيل السرب بأكمله ، لمعظم الأشياء ، من العقدة 1.
‫لذلك سنقوم بالكثير من عملنا بدءًا من العقدة 1 في المحاضرات المستقبلية ، ولكن في الوقت الحالي ، قم بالتربيت
‫على نفسك لأن لديك مجموعة سرب تعمل بكامل طاقتها.