‫مرحبًا.
‫هذا الفيديو لسببين.
‫أولاً ، في حالة عدم رغبتك في تشغيل Docker محليًا.
‫تريد تشغيل Docker على خادم عن بُعد ، سواء كان ذلك للإنتاج أو لاستخدام خادم آخر ،
‫أو ببساطة لأنه لا يمكنك تشغيل Docker محليًا لترخيص موارد الأداء ، فأنت تعلم أنك لست مسؤولاً
‫محليًا.
‫يمكن أن يكون كل أنواع الأسباب.
‫إذن هذا يتعلق بمحرك Docker لخوادم Linux.
‫السبب في أنني أقول إن المحرك والخوادم هي المكونات الرئيسية التي سنتناولها خلال هذا الفيديو.
‫سيركز هذا الفيديو على تثبيت Docker الأكثر تحديثًا من الموقع الصحيح ، والذي
‫يختلف عن مديري حزمة Linux الافتراضية.
‫سوف نتأكد بعد ذلك من تثبيت الإمداد في أي مكان تريد تشغيله فيه بحيث لا يتم
‫إرساله إلى الخادم طوال الوقت.
‫سنقوم بالفعل بإعداده حتى نتمكن من التحكم فيه عن بُعد ، ما هي أفضل طريقة لتشغيل
‫محرك Docker على خادم Linux؟
‫وإخلاء المسئولية قليلاً ، إذا لم تكن قد شاهدت الفيديو السابق ، والذي يدور حول
‫سطح مكتب Docker لسطح مكتب Linux ، فهذا ليس كذلك.
‫هذا قبل أن يكون لدينا سطح مكتب Docker ، كان لدينا محرك Docker فقط.
‫يحتوي كل سطح مكتب Docker على محرك Docker.
‫إنه يديرها نيابة عنك ، لكن محرك Docker ، هو ثنائي واحد يسمى Docker D أو Docker Daemon ، ويمكن
‫أن يعمل على أي خادم Linux.
‫طالما لديك نواة لينكس ، يمكنك تشغيل نفس الشيء.
‫يمكنك تشغيله على خادم Windows ، Docker RD ESXi الذي يمكن تشغيله بالفعل كخدمة على خادم Windows لتشغيل
‫حاويات Windows.
‫لكننا لن نتحدث عن ذلك في هذا الفيديو.
‫لذا فإن سطح مكتب Docker ، المخصص للتشغيل على نظامك المحلي ، هذا حقًا للاستخدام المحلي لـ Docker.
‫لكن هذا هو محرك Docker الذي يمكن تشغيله على أي نظام Linux ، سواء كان محليًا أو بعيدًا ، سواء
‫كان جهاز افتراضي أو خادمًا فعليًا ، إنه Raspberry Pi ، مهما كان.
‫إذا كان يعمل على Linux kernel ، فسيكون مدرجًا في القائمة ولدى Docker قائمة متوافقة من البنيات المدعومة التي تم اختبارها
‫والتي يعرفون أنها تعمل.
‫ليست كل توزيعات Linux موجودة.
‫لا يتضمن BSD ، وهو ليس من الناحية الفنية لينكس ، وهو يركز فقط على الكبار ، كما تعلمون
‫، الغرب الأوسط ، القبعة الحمراء ، أوبونتو ، ديبيان ، تلك الأنواع من الأشياء.
‫وهناك العديد من البنى التي ستدعمها.
‫كمرجع في هذا الفيديو ، سترى رابط هذه الصفحة الذي يعرض لك قائمة توزيعات
‫Linux المدعومة حاليًا للمحرك.
‫سأستخدم بالطبع Docker على Ubuntu ، توزيعة Linux المفضلة للخادم الخاص بي وسأقوم بتوجيهك
‫خلال ذلك.
‫سأقوم بإلقاء الضوء على التفاصيل لأنك حقًا ستقرأ هذا أو تشغل النص ، والذي
‫سنتحدث عنه بعد ذلك.
‫الآن ، نعم ، أقدم لك ارتباطات كمصادر لهذا الفيديو لجميع الوثائق حول جميع طرق تثبيته على
‫متغيرات Linux ، وتوزيعات مثل Ubuntu و Fedora وجميع التوزيعات الأخرى.
‫لكن أسهل طريقة للقيام بذلك في معظم الأحيان هي تشغيل نص برمجي.
‫إذا كتبت في متصفحك ، فاحصل على Docker.
‫سيعطيك ذلك برنامجًا نصيًا للقذيفة يمكنك إلقاء نظرة عليه ، ويمكنك تنزيله ، ويمكنك تشغيله تلقائيًا.
‫مع Curl ، من المفترض أن تحصل بشكل أساسي على الإعدادات الصحيحة وإلغاء تثبيت الأشياء القديمة ، وتثبيت الأشياء الجديدة
‫، والتأكد من حصولك على المصادر الصحيحة وكل هذه الأشياء دفعة واحدة.
‫هذه هي الطريقة التي قمت بها دائمًا بتثبيت Docker ، منذ أن عرفت عن ذلك الطريق ، في بداية
‫المشروع.
‫لذلك ربما للتعلم ، ربما في المرة الأولى التي تقوم فيها بتثبيت Docker على خادم Linux ، يمكنك اتباع
‫الوثائق التي تمر خطوة بخطوة مع مدير الحزم الخاص بك.
‫ربما يكون مناسبًا ، ربما يكون لذيذًا ، ربما يكون APK يعتمد فقط على ما تفعله على توزيعة Linux الخاصة بك.
‫لكنني سأستخدم هذا النص ، وهو أسهل.
‫إنه يتم تجعيد النص إلى ملف ثم تشغيل هذا الملف بصدفة.
‫وهذا هو بالضبط هذا البرنامج النصي ، إذا ذهبت إلى الشريحة الأخيرة ، فسيخبرك
‫بنسخه ولصقه ونسخه ثم تشغيله.
‫لذلك نحن نقوم بذلك وسيحدد التوزيع الذي أستخدمه ، وأي إصدار من ذلك التوزيع
‫، وما إذا كان مدعومًا ، فسيتم الاتصال في هذه الحالة بمدير الحزم بالمفتاح للتأكد من حصولك
‫على الحق .
‫مستودع التثبيت الخاص بك ، ومن ثم يتم تشغيل هذا الأمر لبضع دقائق حسب سرعة الخادم الخاص
‫بك.
‫ثم ينتهي بك الأمر هنا مرة أخرى في موجه الأوامر الخاص بك باستخدام سطر أوامر Docker أو محرك Docker أو
‫Daemon وبعض الأدوات المساعدة الأخرى.
‫عادة ما يأتي مع بعض المكونات الإضافية مثل مجموعة البناء لبناء الصور ، قم بتكوينها لتشغيلها.
‫سوف ندخل في كل ذلك من خلال الدورة.
‫لذلك فقط أدرك أنه ربما هناك أربعة أو خمسة ثنائيات تطفو في نظامك.
‫الآن ، مثل جميع الطرق الأخرى التي يمكنك من خلالها تثبيت Docker ، قم بتنفيذ أمر إصدار Docker
‫space ، واكتب هذا الأمر في shell الخاص بك ، وستستعيد عميل سطر الأوامر وإصدار الخادم على الأقل.
‫عندما تستعيد إصدار الخادم هذا ، فهذا يعني أنك قادر على التحدث إلى خادم API على هذا الخادم.
‫إذا كنت تستخدم قشرة الخادم ، فحينئذٍ تتحدث تقنيًا إلى مضيفين محليين باستخدام مأخذ توصيل.
‫أريد فقط أن أذكرك أن كل ما فعلته هناك هو المصدر المفتوح ومحرك Docker وسطر أوامر
‫Docker وجميع المكونات الإضافية هناك.
‫هذه كلها مفتوحة المصدر بالكامل.
‫ومع ذلك ، فإن سطح مكتب Docker المرخص من Apache ، يتضمن كل هذه الأشياء بالإضافة إلى البرامج المغلقة
‫المصدر أو المرخصة من Docker من مقاطع الفيديو السابقة.
‫سطح المكتب Docker هو أكثر من مجرد مجموعة شاملة من مجموعة من الأشياء المختلفة.
‫محرك Docker الذي نقوم بتثبيته هنا هو مجرد الحد الأدنى.
‫إنه البرنامج الخفي الذي تحتاجه لتشغيل حاوية في Docker.
‫وكتذكير ، كما فعلت في مقاطع الفيديو السابقة ، إذا كنت تستخدم أمر تسجيل الدخول إلى Docker لأنه لا يمكنك الوصول
‫إلى سطر الأوامر هنا إلا إذا كتبت مساحة Docker ، وقم بتسجيل الدخول ، يمكنك تسجيل الدخول باستخدام
‫معرف Docker الخاص بك وذلك سوف تحصل على المزيد من حمامات السباحة.
‫إذا كنت تتذكر ، فإن المسابح هي الأشياء من مقاطع الفيديو القليلة الأولى في هذه الدورة التدريبية التي تحتوي على البرنامج.
‫تقوم بسحب الصورة ثم تشغيلها كحاوية وتقوم بذلك عددًا معينًا من المرات.
‫وقد يشتكي Docker في النهاية ويقول ، مرحبًا ، انظر ، لقد تجاوزت وأعتقد أن الرقم
‫الحالي هو 106 ساعة.
‫تقول أنك تجاوزت عدد حمامات السباحة.
‫حسنًا ، إذا كنت تعمل خلف جدار حماية خاص بشركة وكان كل فرد في شركتك يستخدم Docker
‫وكلهم وراء عنوان IP واحد ، فيمكن الوصول إلى هذا الحد بسرعة كبيرة.
‫ولكن إذا قمت بتسجيل الدخول ببساطة ، فإن Docker يمنحك على الأقل ضعف مقدار عمليات السحب مجانًا من خلال الحساب المجاني إذا كنت تدفع مقابل
‫Docker ، وهو ما لا يتعين عليك القيام به في هذه الدورة التدريبية ، ولكن إذا كنت تريد الدفع
‫مقابل Docker بالنسبة لاشتراك Docker ، ستحصل ، على ما أعتقد ، على مجموعات غير محدودة طالما قمت بتسجيل الدخول
‫باستخدام هذا الحساب.
‫لكن دعنا ننتقل إلى التحكم في هذا البرنامج الخفي محليًا.
‫الآن ، ما سيحدث هنا هو أي نظام ستستخدمه ، دعنا نقول أن هذا إعداد
‫خادم ، أو ربما لا تريد تشغيل Docker على جهازك المحلي.
‫ربما لا يُسمح لك بذلك ، ربما لا يمكنك ذلك.
‫ربما ليس لديك موارد كافية.
‫ربما أنت لست جذرًا على جهازك المحلي.
‫لكن لديك القدرة على تشغيل Docker على هذا الجهاز البعيد.
‫حسنًا ، لست مضطرًا للجلوس في الغلاف على هذا الجهاز البعيد وكتابة جميع أوامرك هناك والقيام بكل عمل كود
‫المصدر الخاص بك هناك أو استنساخ الريبو لهذه الدورة التدريبية.
‫لا يمكنك فعل أي شيء هناك.
‫يمكنك تجاهل ذلك.
‫يمكنك بالفعل تثبيت Docker هناك وسنتحدث معه عن بُعد.
‫الآن ، دعنا نعود للحظة.
‫قبل سنوات ، قبل وجود ميزة نفق SSH في مكان ما في عام 2018 تقريبًا ، ثم قبل ذلك كان عليك إما ssh في الخادم والقيام
‫بكل شيء على الخادم وهذا النوع من الامتصاص في بعض الأحيان لأنه بعد ذلك يجب عليك نسخ الأشياء
‫الخاصة بك مرة أخرى و إنه ليس رائعًا.
‫لديك كل شيء آخر محليًا ، لديك محرر التعليمات البرمجية الخاص بك ، ربما تستخدم كود Visual
‫Studio ولديك شفرة المصدر الخاصة بك لهذه الفئة ولديك أشياء هنا ، أليس كذلك؟
‫لذلك ، من الناحية المثالية ، تريد القيام بكل هذا العمل على جهازك المحلي.
‫حل Docker ذلك عندما ظهر لأول مرة في عام 2013.
‫الطريقة الوحيدة للقيام بذلك كانت من خلال منفذ TCP ، والذي لا يحتوي على مصادقة
‫مضمنة ولا يوفر افتراضيًا تشفيرًا للاتصال.
‫لذلك تم اعتباره بشكل عام طريقة سيئة للاتصال بـ Docker.
‫لقد كان شيئًا ما كنت تريد القيام به فقط على الشبكات الآمنة ، وخاصة لأنه لم تتم مصادقته.
‫يمكن أن يسمح لك تقنيًا بالوصول إلى الجذر عن بُعد إلى خادم إذا كنت متصلاً ببساطة من أي مكان يمكنه
‫الوصول إلى هذا المنفذ ، فهذه فكرة سيئة.
‫ثم أضاف Docker هذه الميزة الجديدة المضمنة بحيث يمكننا ببساطة إجراء اتصال SSH شفاف طالما يمكنك
‫SSH لهذا الخادم والحصول على المصادقة أو الشهادة ، ويفضل أن يكون SSH في ذلك الخادم.
‫يمكنك القيام بذلك ولن تحتاج إلى القفز عبر الأطواق أو كشف أي منافذ إضافية.
‫لذلك هذا ما سنفعله.
‫إذن هذه الخطوة هنا هي ببساطة الحصول على عميل سطر أوامر Docker على أي نظام ستعمل منه ويمكن أن
‫يكون على أنظمة تشغيل Windows و Mac و Linux و Raspberry و PIs ، وما إلى ذلك.
‫ما عليك سوى الحصول على عميل سطر الأوامر إذا كنت تستخدم جهاز Mac.
‫من المثير للدهشة أن مُثبِّت الشراب ، الذي إذا كنت لا تعرف شيئًا عن الشراب ، فأنت تفتقد أفضل
‫برنامج تثبيت لنظام التشغيل Mac و Brew ، لا يقوم Docker بالفعل بتثبيت محرك Docker الكامل أو سطح مكتب Docker.
‫يقوم فقط بتثبيت العميل لأنهم.
‫لا يوجد محرك Docker لنظام التشغيل Mac.
‫لا تدعم أجهزة Mac kernels الحاويات ، لذلك من المدهش أن التثبيت لا يؤدي إلا إلى تثبيت سطر أوامر ، وهو ما نريده
‫في هذه الحالة.
‫إذا كان جهازك المحلي هو Linux ، فيمكنك استخدام حزمة تثبيت Linux من وثائق
‫Dockers وبعد ذلك بمجرد إعداد هذه الحزمة كمستودع ، يمكنك بعد ذلك تثبيت حزمة Docker CCI
‫من هذا المستودع.
‫وأخيرًا ، إذا كنت تستخدم نظام Windows ، فربما تكون قد سمعت عن Chocolaty.
‫هذا أحد مديري الحزم لنظام Windows في الوقت الحاضر.
‫ويمكنك إجراء تثبيت بالشوكولاتة لتثبيت عميل سطر الأوامر فقط.
‫لكن Docker أيضًا أوضح كل هذا في وثائقه حيث يخبرك كيف يمكنك الحصول على
‫مكتبات العميل لنظام التشغيل الخاص بك ومكتبة العميل فقط.
‫تمام.
‫لحظة الحقيقة.
‫لقد قمت بتثبيت محرك Docker على خادم Linux.
‫بغض النظر عما ستستخدمه من أجله ، سواء كان ذلك فقط للتدريب أو للإنتاج الحقيقي
‫، لديك Docker على الخادم ، لديك الآن العميل على Southern ، جهازك المحلي.
‫يجب أن أذكرك أن كل تلك الأشياء التي أخبرك بها للتو عن تثبيت العميل ، إذا كان لديك بالفعل Docker
‫Desktop مثبتًا ، فلن تحتاج إلى القيام بذلك.
‫يأتي سطح مكتب Docker مع العميل ، ولكن يمكننا إخبار العميل بمكان التحدث إلى محرك
‫الخادم وهذا ما سنفعله الآن.
‫لذا تخيل أنه يمكنني القول في خادم بشيء مثل هذا الأمر هنا ، مسار ssh في عنوان IP أو اسم
‫مضيف.
‫ولنفترض أن لديّ شهادة SSH.
‫لذلك يفترض كل هذا أنك تفهم أساسيات SSH التي تعرفها عن كيفية الحصول على شهادة على الخادم
‫حتى تتمكن من تسجيل الدخول عن بُعد.
‫هناك الكثير من الدروس حول ذلك ومن المفترض أن المعرفة.
‫مرة أخرى ، من المفترض أن المعرفة الأساسية بلينكس قبل أن تتعامل مع Docker.
‫لذا ، بافتراض أنه يمكننا فعل ذلك ، إذا كان لدي هذا الوصول ، فكل ما سأحتاجه هو إنشاء متغير
‫بيئة.
‫يخبر متغير بيئة Docker السفلية للمضيف سطر أوامر Docker بالخادم الذي يجب التحدث إليه افتراضيًا.
‫إذا قمت فقط بتثبيت Docker على شيء ما وبدأت في استخدام سطر الأوامر ، فإنه يفترض وجود المقبس المحلي
‫أو المضيف المحلي.
‫ولذا فهي لا تحتوي حتى على متغير البيئة هذا.
‫وبشكل افتراضي ، إذا كان فارغًا ، فإن متغير البيئة هذا ، على الرغم من أن Docker يحاول
‫البحث عنه ولم يعثر على واحد ، سيقول ، حسنًا ، يجب أن تفترض أنني بحاجة إلى التحدث إلى المضيف المحلي
‫وسوف يفعل ذلك هذا جيد.
‫ولكن إذا قمنا بتغيير هذا عن طريق إضافة مضيف عامل ميناء التصدير يساوي ssh شرطة مائلة للنقطتين كما لو كنت
‫تستخدم في https URL.
‫لذا ، إذا استبدلنا ذلك باسم المستخدم المائل لـ ssh Colon في اسم المضيف ، فيمكنني حينئذٍ القفز باستخدام عامل الإرساء عن طريق كتابة أوامر
‫عامل الإرساء العادية.
‫لذا لاحظ أنني أكتب نسخة عامل إرساء هنا ، لكن ليس لدي Docker يعمل على جهازي المحلي.
‫لدي فقط عميل Docker هذا وهو بالفعل SSH عبر الإنترنت إلى مثيل السحابة البعيدة الذي قمت
‫بإعداده منذ لحظات ويعيد إصدار الخادم بالإضافة إلى إصدار العميل.
‫إذا كنت ستبدأ في البحث ، فسترى في الواقع أنني على Darwin ، وهو نظام Mac OS لعميلي
‫وإذا مررنا لأسفل ، فسيعرض الخادم Linux لأن هذا هو المكان الذي يقوم فيه الخادم بتشغيل
‫المحرك وهذا كل شيء.
‫هذا كل ما عليك القيام به.
‫إذا كنت ترغب في إلغاء ضبط متغير بيئة المضيف في Docker ، فسيعود سطر أوامر Docker إلى جهازك
‫المحلي ، على افتراض أن المحرك يعمل محليًا ويمكنك التبديل ذهابًا
‫وإيابًا.
‫في الواقع ، يمكن أن يكون لديك مجموعة من الخوادم المختلفة وتغيير متغير البيئة في كل قذيفة
‫تستخدمها لإخبارها بالخادم الذي تريد التحدث إليه.
‫هناك أمر سياق Docker يمكنه أيضًا القيام بذلك.
‫لن نتحدث عن ذلك بعد.
‫هذا أكثر تقدمًا في وقت لاحق من الدورة التدريبية ، ولكن هناك أمرًا مدمجًا تقنيًا
‫يسمى سياق Docker يسمح لك بحفظ هذه الإعدادات وإدارة قائمة بالمحركات المختلفة التي تريد التحدث
‫إليها.
‫ولكن هذا رائع لتبدأ به ، والخطوة الأخيرة هنا هي استنساخ مستودعك لهذه الدورة التدريبية محليًا ، تلك التي
‫ذكرت بضع محاضرات في المحاضرات المكتوبة حيث يوجد إعادة شراء للدورة التدريبية التي تقوم
‫بتنزيلها ، فأنت تريد وضع ذلك على جهازك المحلي جنبًا إلى جنب مع محرر الشفرة
‫وكل شيء آخر وعميل Docker.
‫الشيء الوحيد الذي سيكون على الخادم هو المحرك الذي قمنا بتثبيته ولن نحتاج
‫إلى إرساله باستمرار لأن جميع أوامر Docker التي نقوم بتشغيلها محليًا ستنفذ فقط على هذا الخادم
‫البعيد.
‫هذا الخادم البعيد.
‫بالمناسبة ، تذكر فقط عندما أكتب مضيفًا محليًا في المستعرض الخاص بي لاختبار الأشياء في Docker ، مثل
‫ربما موقع ويب أو شيء نقوم بتشغيله في Docker ، فلن تكتب مضيفًا محليًا ، ستذهب
‫لكتابة اسم مضيف الخادم أو عنوان IP الذي قمت بتثبيت Docker عليه.
‫هذه هي الآلة التي تقوم بتشغيل المحرك ، وتشغيل الحاويات الخاصة بك ، وسوف تحتاج إلى كتابتها
‫في متصفحك.
‫أو إذا كنت تقوم بتشغيل أي أوامر محلية أخرى مثل curl أو ping ، فستحتاج إلى القيام بذلك على
‫عنوان IP الخاص بالخادم وهذا كل شيء.
‫لديك الآن محرك يعمل على خادم Linux في مكان ما في العالم.
‫أنت تعمل على نظامك المحلي باستخدام التعليمات البرمجية الخاصة بك وريبو الخاص بك وكل شيء آخر ، وأنت على
‫استعداد للبدء.