تُعد الحاويات بمثابة شريان الحياة لكل تثبيت لـ Docker. فهي بمثابة الأساس لمنصة Docker وتتيح لك تشغيل الخدمات على جهاز الكمبيوتر الخاص بك دون القلق بشأن التبعيات وتعارضات الإصدارات. هنا، نعرض لك أساسيات إنشاء حاويات Docker وإدارتها وتخصيصها باستخدام أداة Docker CLI.
ملحوظة:ابدأ بتثبيت Docker أولاً على نظام Linux الخاص بك.
كيفية العثور على صورة Docker وسحبها
حاويات Docker هي نوع خاص من بيئة البرامج التي تسمح لك بتشغيل البرامج بشكل منفصل عن بقية نظامك الأصلي. لتحقيق ذلك، يستخدم Docker “صور البرامج”. وهي عبارة عن نسخ ثابتة من البرامج تعمل كقاعدة تبدأ منها الحاوية.
يتيح لك هذا التمييز بين الصورة والحاوية إعادة إنشاء وتكييف برنامجك بأي طريقة ضرورية. على سبيل المثال، يمكنك الحصول على صورة مثل “httpd” ولكن يمكنك إنشاء حاويتين منفصلتين منها: “website1″ و”website2”.
أسهل طريقة للبحث عن صورة Docker جديدة هي استخدام search
الأمر الفرعي:
يمكنك أيضًا البحث عن الحزم على مركز دوكر الموقع الإلكتروني إذا كنت تفضل استخدام متصفح الويب الخاص بك.
لتنزيل الصورة على نظامك، قم بتشغيل الأمر التالي:
تأكد من أنك قمت بإضافة صورتك الجديدة إلى نظامك بشكل صحيح باستخدام images
الأمر الفرعي:
إنشاء صورة جديدة باستخدام Dockerfiles
بصرف النظر عن سحب الصور المعدة مسبقًا من Docker Hub، يمكنك إنشاء صور مباشرة من Docker CLI. وهذا مفيد إذا كنت تريد إنشاء إصدارات مخصصة من حزم البرامج الموجودة أو نقل تطبيقات جديدة إلى Docker.
للقيام بذلك، قم أولاً بإنشاء مجلد في الدليل الرئيسي الخاص بك لملفات البناء الخاصة بك:
mkdir ~/my-docker-image && cd ~/my-docker-image
قم بإنشاء ملف Dockerfile جديد باستخدام محرر النصوص المفضل لديك:
قم بلصق أسطر التعليمات البرمجية التالية داخل ملف Dockerfile الجديد الخاص بك:
FROM nginx COPY sample-site /usr/share/nginx/html
قم بإنشاء مجلد “موقع العينة” ثم انسخ فيه أو قم بإنشاء موقع HTML أساسي:
mkdir ./sample-site cp ~/index.html ./sample-site/
احفظ ملف Dockerfile الجديد، ثم قم بتشغيل الأمر التالي لبنائه على نظامك:
docker build -t custom-nginx .
تحقق مما إذا كانت صورة Docker الجديدة موجودة في قائمة صور Docker الخاصة بك:
إنشاء صورة جديدة باستخدام الحاويات الموجودة
يمكن لأداة Docker CLI أيضًا إنشاء صور جديدة من الحاويات الموجودة حاليًا في نظامك. وهذا مفيد إذا كنت تعمل بالفعل على بيئة موجودة وتريد إنشاء صورة جديدة من إعدادك الحالي.
للقيام بذلك، تأكد من أن الحاوية الخاصة بك لا تعمل حاليًا:
docker stop my-http-server
قم بتشغيل commit
الأمر الفرعي متبوعًا باسم الحاوية الخاصة بك، ثم قم بتوفير اسم صورة Docker الجديدة بعد ذلك:
docker commit my-http-server my-new-server-image
تأكد من وجود صورة Docker الجديدة في نظامك عن طريق تشغيل docker images
.
كيفية تشغيل حاوية Docker وإيقافها
بعد أن أصبحت صورة Docker جاهزة، يمكنك الآن البدء في استخدامها لإنشاء أول حاوية لك. للقيام بذلك، استخدم run
الأمر الفرعي متبوعًا باسم الصورة التي تريد تشغيلها:
في حين أن هذا سيعمل لتشغيل حاوية Docker الأولى الخاصة بك، فإن القيام بذلك بهذه الطريقة سيتولى جلسة shell الحالية الخاصة بك. لتشغيل الحاوية الخاصة بك في الخلفية، أضف -d
العلم بعد run
الأمر الفرعي:
ال run
يمكن للأمر الفرعي أيضًا استيعاب عدد من العلامات الإضافية التي يمكنها تغيير سلوك حاوية Docker الجديدة. على سبيل المثال، --name
يتيح لك العلم إضافة اسم قابل للتخصيص إلى الحاوية الخاصة بك:
docker run -d --name=my-http-server httpd
من ناحية أخرى، يمكنك استخدام --publish
علم لإعادة توجيه منفذ الشبكة حيث يمكنك الوصول إلى حاوية Docker الخاصة بك. هذا مفيد بشكل أساسي إذا كنت لا تريد أن تستحوذ حاويتك على منفذ مميز:
docker run -d --name=my-http-server --publish 8080:80 httpd
بإمكانك التحقق من جميع حاويات Docker التي تعمل حاليًا في نظامك عن طريق تشغيل الأمر التالي:
مشابهه ل run
أمر فرعي، ps
يمكن أيضًا استيعاب عدد قليل من العلامات التي ستعدل كيفية تصرفها. على سبيل المثال، لعرض الحاويات المعطلة حاليًا، استخدم -a
علَم:
لإيقاف تشغيل الحاوية قيد التشغيل، استخدم stop
الأمر الفرعي متبوعًا إما بمعرف الحاوية أو باسم حاوية Docker الخاصة بك:
docker stop my-http-server
يمكنك إعادة تشغيل أي حاوية أوقفتها عن طريق إعادة تشغيل start
الأمر الفرعي:
docker start my-http-server
في ملحوظة جانبية: تعلم أساسيات استضافة الويب مع Docker عن طريق تشغيل موقع ويب بسيط باستخدام darkhttpd.
إيقاف مؤقت وإنهاء حاوية Docker
تتيح لك أداة Docker CLI أيضًا إيقاف عملية حاوية قيد التشغيل مؤقتًا وإنهائها. يمكن أن يكون هذا مفيدًا إذا كنت تحاول استكشاف مشكلة في إعداد Docker الخاص بك وتريد عزل حاوية لا تتصرف بشكل جيد أو إيقافها.
ابدأ بالجري docker ps
لإدراج جميع الحاويات قيد التشغيل في النظام.
ابحث عن معرف أو اسم الحاوية التي تريد إدارتها.
قم بتشغيل pause
الأمر الفرعي متبوعًا باسم الحاوية التي تريد تعليقها مؤقتًا:
docker pause my-http-server
يمكنك استئناف عملية معلقة عن طريق تشغيل unpause
الأمر الفرعي:
docker unpause my-http-server
لإيقاف عملية سيئة السلوك، قم بتشغيل kill
الأمر الفرعي متبوعًا باسم الحاوية الخاصة بك:
docker kill my-http-server
كيفية فحص حاوية Docker
إن معرفة التفاصيل الدقيقة للحاوية الخاصة بك تشكل جزءًا حيويًا من الحفاظ على صحة حزمة Docker الخاصة بك. فهي تتيح لك إلقاء نظرة سريعة على أي مشكلات محتملة ويمكن أن تكون الفارق بين إصلاح وإعادة نشر عملية النشر بالكامل.
لإلقاء نظرة عامة على حاوية Docker الخاصة بك، قم بتشغيل inspect
الأمر الفرعي:
docker inspect my-http-server
سيؤدي القيام بذلك إلى طباعة سلسلة JSON طويلة تصف الحالة الحالية للحاوية بأكملها. يمكنك تضييق نطاق هذا إما عن طريق توجيه الإخراج إلى jq أو استخدام المضمن -f
العلم متبوعًا بالكائن JSON الذي تريد طباعته:
docker inspect -f {{.Name}} my-http-server
طباعة سجلات الحاويات على المحطة الطرفية
بالإضافة إلى ذلك، يمكنك أيضًا تتبع وطباعة سجلات أي حاوية Docker قيد التشغيل حاليًا. قد يكون هذا مفيدًا إذا كنت تريد التحقق من كيفية عمل الخدمة حاليًا وإلقاء نظرة على الناتج الذي تعيده إلى STDOUT.
للقيام بذلك، قم بتشغيل الأمر الفرعي logs متبوعًا باسم الحاوية الخاصة بك:
docker logs my-http-server
يمكنك أيضًا تشغيل الأمر الفرعي للسجلات باستخدام --follow
علم لإنشاء سجل مستمر لخدمة Docker الخاصة بك. هذا مشابه لتشغيل tail -f
في نهاية أنبوب UNIX:
docker logs --follow my-http-server
على غرار الأوامر الفرعية الأخرى، يمكنك أيضًا إضافة علامات مختلفة لتخصيص إخراج سجل حاوية Docker الخاصة بك. على سبيل المثال، --timestamps
تضيف العلامة علامة زمنية مفصلة لكل رسالة يرسلها الحاوية الخاصة بك إلى STDOUT الخاص بها:
docker logs --timestamps my-http-server
ال --details
ستطبع العلامة أيضًا متغيرات البيئة التي قمت بتعيينها لحاوية Docker الحالية الخاصة بك. وفي الوقت نفسه، --since
يتيح لك العلم إظهار السجلات التي حدثت بعد نقطة زمنية معينة فقط:
docker logs --details --since 8m my-http-server
كيفية تخصيص حاوية Docker
في الأساس، يعد Docker Container إصدارًا صغيرًا ومختصرًا من Linux يعمل على نظامك الحالي. وهذا يعني أنه، على غرار الآلة الافتراضية، من الممكن الوصول إلى البيانات الموجودة داخل الحاوية واستردادها.
لنسخ ملف محلي من جهازك المضيف إلى الحاوية، قم بتشغيل cp
الأمر الفرعي:
docker cp ~/my-file my-http-server:/tmp
في بعض الأحيان، قد تحتاج أيضًا إلى “الدخول” إلى الحاويات من خلال فتح غلاف بداخلها. بهذه الطريقة، يمكنك تحرير الملفات وتثبيت الثنائيات وتخصيصها وفقًا لاحتياجاتك:
docker exec -it my-http-server /bin/bash
الآن، يمكنك، على سبيل المثال، تحرير “index.html” وإنشاء صفحة رئيسية لموقع الويب داخله.
للخروج من غلاف الحاوية عن طريق الضغط على كنترول + دأو الجري exit
على المحطة.
جيد ان تعلم: تعرف على كيفية نقل حاوية Docker الموجودة إلى نظام جديد.
كيفية حذف حاويات Docker والصور
إن إزالة حاويات Docker والصور غير المستخدمة تشكل جزءًا مهمًا من التنظيف العام لنشرك. يتيح لك القيام بذلك إزالة الملفات غير الضرورية من الخادم، مما يوفر مساحة تخزين على المدى الطويل.
قبل حذف الحاوية، تأكد من إيقافها أولاً:
docker stop my-http-server
الآن، قم بإزالة الحاوية باستخدام rm
الأمر الفرعي:
تأكد من أنك قمت بحذف حاوية Docker القديمة بشكل صحيح عن طريق تشغيل docker ps -a
.
احذف صورة Docker الأصلية من نشر Docker الخاص بك:
docker rmi my-new-server-image
تحقق مما إذا كنت قد قمت بإزالة صورة Docker الأصلية بشكل صحيح عن طريق تشغيل docker images
.
إن تعلم كيفية إنشاء حاويات Docker وإدارتها وإزالتها ليس سوى جزء من الأشياء التي يمكنك القيام بها باستخدام خادم Linux الخاص بك. استكشف العالم العميق لإدارة نظام Linux من خلال استضافة خادم ومركز حاويات Docker باستخدام XPipe.