هذا المقال يتضمن السلسلة الالعلمية الالكترونيةحول تنفيذ وإدارة العمليات المكونة في السحابة. يقوم هذا المجموعة بالبناء على الأساسيات المتعلقة بالبلاكس, بما في ذلك إدارة دورة البلاكس, تنفيذ تطبيقات متعددة البلاكس, تنمية العمليات, وفهم Kubernetes, ويشير إلى الأفضل الممارسات لتشغيل التطبيقات الحالية.
يشمل هذا التوريتور ما يحتوي عليه المبادر الأول في السلسلة، تعلم البدء بالبلاكس.
تقديم
Docker هو منصة لتنفيذ وإدارة تطبيقات مكونة من البلاكس. تتمتع البلاكس بشكل شائع بين المطورين والمسؤولين والمهندسين الأوليين بسبب المرونة التي تقدمها.
يتمكن Docker من ثلاث components أساسيين:
- محرك Docker
- أدوات Docker
- مخزون Docker
يقدم محرك Docker القدرات الأساسية لإدارة البلاكس. يتفاعل مع نظام التشغيل اللينكسي الخفيف الذي يعرض أبعاد بسيطة للتعامل مع دورة حياة البلاكس.
تتكون أدوات Docker مجموعة من الأدوات الخطوط السريرية التي تتحدث إلى الAPI المعروض من قبل محرك Docker. يستخدمونها لتشغيل البلاكس، إنشاء صور جديدة، تكوين التخزين والشبكات، والقيام بعدة عمليات تؤثر على دورة حياة البلاكس.
الـ Docker Registry هو المكان حيث يتم تخزين صور الحاويات. كل صورة يمكن أن تحتوي على إصدارات متعددة تتم تحديدها من خلال وسوم فريدة. يستسلم المستخدمون بصور موجودة من السجل ويدفعون صور جديدة إليه. Docker Hub هو سجل مضاف يتم إدارته بواسطة Docker, Inc. ومن الممكن أيضًا تشغيل سجل داخل بيئتك الخاصة للحفاظ على الصور أقرب إلى المحرك.
في نهاية هذا الدليل، ستكون قد قمت بتثبيت Docker على Droplet DigitalOcean، وإدارة الحاويات، والعمل مع الصور، وإضافة الاستمرارية، وإعداد سجل خاص.
المتطلبات السابقة
لاتباع هذا الدليل، ستحتاج إلى:
-
جلسة واحدة من Ubuntu 16.04 تم إعدادها باتباع هذا الدليل إعداد أولي لخادم Ubuntu 16.04، بما في ذلك مستخدم غير جذري يمتلك صلاحيات sudo وجدار ناري.
-
حساب Docker Hub. هذا المراجعة لـ Docker Hub سيساعدك في البدء.
بشكل افتراضي، يتطلب الأمر docker
صلاحيات جذرية. ومع ذلك، يمكنك تنفيذ الأمر دون بادئة sudo
عن طريق تشغيل docker
كمستخدم في المجموعة docker.
لتكوين Droplet الخاص بك بهذه الطريقة، قم بتشغيل الأمر sudo usermod -aG docker ${USER}
. هذا سيضيف المستخدم الحالي إلى المجموعة docker
. ثم، قم بتشغيل الأمر su - ${USER}
لتطبيق عضوية المجموعة الجديدة.
يتوقع هذا الدليل أن يكون الخادم الخاص بك مكون لتشغيل الأمر docker
دون بادئة sudo
.
الخطوة 1 — تثبيت Docker
بعد الاتصال بـ SSH إلى Droplet، قم بتشغيل الأوامر التالية لإزالة أي حزم مرتبطة بـ Docker قد تكون مثبتة بالفعل ومن ثم تثبيت Docker من المستودع الرسمي:
بعد تثبيت Docker، تحقق من التثبيت باستخدام الأوامر التالية:
الأمر المذكور أعلاه يعرض تفاصيل محرك Docker المنشأ في البيئة. الأمر التالي يتحقق من أن أدوات Docker مثبتة ومهيأة بشكل صحيح. يجب أن يطبع إصدار كلا محرك Docker والأدوات.
##الخطوة 2 — تشغيل الحاويات
تُشغل حاويات Docker من الصور الموجودة بالفعل في الرجزي، حيث يمكن تخزين صور Docker في مستودعات خاصة أو عامة. تتطلب المستودعات الخاصة من المستخدمين التحقق من هويتهم قبل سحب الصور. يمكن الوصول إلى الصور العامة بواسطة أي شخص.
للبحث عن صورة تحت اسم hello-world
، أدر الأمر التالي:
قد يكون هناك عدة صور تتطابق مع الاسم hello-world
. اختر التي تحتوي على أكبر عدد من النجوم، مما يشير إلى شعبية الصورة.
تحقق من الصور المتاحة في بيئتك المحلية باستخدام الأمر التالي:
لأننا لم نقم بتشغيل أي حاويات حتى الآن، لن يكون هناك أي صور. يمكننا الآن تنزيل الصورة وتشغيلها محلياً:
إذا قمنا بتنفيذ الأمر docker run
بدون سحب الصورة، سيسحب محرك Docker الصورة أولاً ثم يقوم بتشغيلها. تشغيل الأمر docker images
مرة أخرى يظهر أن لدينا الصورة hello-world
متاحة محلياً.
لنقم بتشغيل حاوية أكثر معنى: خادم Apache للويب.
قد لاحظت أن هناك خيارات إضافية مرفقة إلى الأمر docker run
. إليك شرح لهذه المفاتيح:
-p
— هذا الماد التعلمي يخبر Docker Engine بتعريف منفذ القارورة80
على منفذ المضيف80
. ولأن Apache يستمع على منفذ80
, فعلينا تعريفه على منفذ المضيف.--name
— هذا المفتاح الاختياري يحدد اسم لقارورتنا التي تشتغل. إذا تم تخطي هذا, Docker Engine سيحدد اسم عشوائي.-d
— هذه الخيارة توجيه Docker Engine بتشغيل القارورة بالوضع المنعزل. وبدون هذا, القارورة ستبدأ في الأفق، وستحجب الوصول إلى السطح الشروطي. من خلال تحميل القارورة في الخلفية، يمكننا استخدام السطح الشروطي بينما تتجاوز تشغيل القارورة.
لتتأكد بأن قارورتنا بالفعل تتشغل في الخلفية، حاول القول لهذا الأمر:
يظهر الناتج أن قارورة تدعى web
تتشغل مع منفذ 80
المرتبط بمنفذ المضيف 80
.
الآن قم بالوصول إلى المستودع الويب:
دعونا نتوقف ونأزل القارورة التي تشتغل بالأمراض التالية:
تأكيد القارورة أنها موقوفة من مرة أخرى عند تنفيذ ما بواسطة docker ps
مجددًا.
خطوة 3 — إضافة التخزين إلى القارورات
الوحادات مؤقتة ، وهذا يعني أن أي شيء تخزين داخل الوحدة سيختفي حين انهاء الوحدة. للحفاظ على البيانات أبعد من عمر الوحدة ، يتوجب علينا توصيل قطعة أرشيف إلى الوحدة. تلك القطع الرئيسية هي أولويات من نظام الملفات المضاف.
بدء بإنشاء 目录 جديد على المضيف:
حالياً ، دعونا نبدأ بتشغيل الوحدة مع مفتاح جديد لتمويل الدليل htdocs
، ونوجهه إلى جذور موقع الإنترنت Apache:
المفتاح -v
يوجه الدليل htdocs
داخل الوحدة إلى نظام الملفات المضاف. أي تغيير يتم إجراءه في هذا الدليل سيكون مرئياً في كلا المواقع.
توجه إلى الدليل من خلال الوحدة بتشغيل الأمر:
هذا الأمر يربط قائمة الوحدة بالصفحة التفاعلية بالوحدة. يمكنك أن ترى أنك قد انهيء داخل الوحدة الآن.
تحريك إلى مجلد htdocs
وأنشئ ملف HTML بسيط. وأخرج من الصفحة للعودة إلى المضيف:
تنفيذ أمر curl localhost
مجدداً يظهر أن المزيد من الخوادم تستعمل صفحة التي أنشأناها.
يمكننا أن نحصل على هذه الملف من المضيف والتعديل عليه:
تتم تحقيق التأكيد مجدداً من أمر curl localhost
أن المزيد من الخوادم تقدم صفحة الإنترنت الأخيرة التي أنشأناها من المضيف.
يمكنك انهاء الوحدة بالأمر التالي. (ال-f
يجبر Docker على الانهاء دون التوقف الأول.)
خطوة 4 — بناء الصور
بعيداً عن تشغيل الصور الموجودة في ال注册表، يمكننا إنشاء صور خاصة بنا وتخزينها في ال注册表.
يمكنك إنشاء صور جديدة من containers الموجودة. التغييرات التي يتم إجراها على الcontainer تتم أولاً التأكيد ومن ثم تم تسمية الصور وترحيبها في ال注册表.
دعونا نبدأ مرة أخرى container httpd
ونغير الdocument الافتراضي:
الcontainer يجري الآن بواسطة صفحة index.html
مخصصة. يمكنك تحقيق ذلك باستخدام curl localhost
.
قبل أن نتأكد من الcontainer المغير، من الجيد أن نتوقف عن تشغيله. بعد التوقف سنقوم بأمر التأكيد:
تأكيد خلق الصورة بأمر docker images
. يظهر الصورة doweb
التي قمنا بإنشائها مؤخرًا.
لتسمية وتخزين هذه الصورة في Docker Hub، قم بتشغيل الأوامر التالية لتصبح صورتك في ال注册表 العام:
يمكنك تحقيق صورة الجديدة بالبحث في Docker Hub من خلال المتصفح أو الخطأ.
خطوة 5 — إطلاق 注册表 خاص
يمكننا إدخال المعلومات الفاسدة في environment خاص، لحفظ الصور أكثر سياسة خصوصية. هذا يقوم بتحديد مدى الزمن بين جهة الكومبيوتر والمعلومات الصورية.
متاجرة Docker متاجرة كما هي كاملة من خالل محادثات شبكة. بالنسبة لكنها متاجرة مع معلومات صور معينة، فإن هي مفاضلة إدخال مستوى خاص لها.
لم يتم إنشاء مستوى خاص لها، لذا يمكننا إدخالها كما يلي: إنشاء مستوى خاص لها وإدخالها إلى سيستم المعلومات.
لم يتم إنشاء مستوى خاص لها، لذا يمكننا إدخالها كما يلي: إنشاء مستوى خاص لها وإدخالها إلى سيستم المعلومات.
لم يتم إنشاء مستوى خاص لها، لذا يمكننا إدخالها كما يلي: إنشاء مستوى خاص لها وإدخالها إلى سيستم المعلومات.
لم يتم إنشاء مستوى خاص لها، لذا يمكننا إدخالها كما يلي: إنشاء مستوى خاص لها وإدخالها إلى سيستم المعلومات.
لم يتم إنشاء مستوى خاص لها، لذا يمكننا إدخالها كما يلي: إنشاء مستوى خاص لها وإدخالها إلى سيستم المعلومات.
لم يتم إنشاء مستوى خاص لها، لذا يمكننا إدخالها كما يلي: إنشاء مستوى خاص لها وإدخالها إلى سيستم المعلومات.
>
لأن المجلد السجلي غير مؤمن، نحتاج إلى تعديل تكوين محرك Docker لتمكين الوصول إلى مجلد سجلي غير مؤمن. لفعل ذلك، احرر ملف daemon.json
الموجود في /etc/docker/daemon.json
. قم بإنشاء الملف إذا لم يكن موجودًا.
أضف الإدخال التالي:
{
"insecure-registries" : ["REMOTE_REGISTRY_HOST:5000"]
}
استبدل REMOTE_REGISTRY_HOST
باسم المضيف أو عنوان IP للمجلد السجلي البعيد. أعد تشغيل محرك Docker لضمان تطبيق التغييرات التي تم إجراؤها على التكوين.
##الخاتمة
تعلمتك هذه الدليلة في البدء مع Docker. لقدغطت المفاهيم الأساسية بما في ذلك التثبيت، إدارة الحاويات، إدارة الصور، التخزين، والمجلد السجلي الخاص. الدورات والمقالات القادمة في هذه السلسلة ستساعدك في الانتقال إلى ما وراء الأساسيات في Docker.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-docker