Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks
جدول المحتويات:
صورة Docker هي مخطط حاويات Docker الذي يحتوي على التطبيق وكل ما تحتاجه لتشغيل التطبيق. الحاوية هي نسخة وقت التشغيل لصورة.
في هذا البرنامج التعليمي ، سوف نوضح ما هو Dockerfile ، وكيفية إنشاء واحد ، وكيفية بناء صورة Docker مع Dockerfile.
ما هو Dockerfile
ملف Dockerfile هو ملف نصي يحتوي على جميع الأوامر التي يمكن للمستخدم تشغيلها في سطر الأوامر لإنشاء صورة. ويشمل جميع الإرشادات التي يحتاجها Docker لبناء الصورة.
تتكون صور Docker من سلسلة من طبقات نظام الملفات التي تمثل الإرشادات الموجودة في Dockerfile للصورة والتي تشكل أحد تطبيقات البرامج القابلة للتنفيذ.
يأخذ ملف Docker النموذج التالي:
# Comment INSTRUCTION arguments
لا يعتبر
INSTRUCTION
حساسًا لحالة الأحرف ، ولكن الاتفاقية تستخدم UPPERCASE لأسمائها.
فيما يلي القائمة مع وصف موجز لبعض الإرشادات الأكثر استخدامًا Dockerfile:
- ARG - يسمح لك هذا الإرشادات بتحديد المتغيرات التي يمكن تمريرها في وقت الإنشاء. يمكنك أيضًا تعيين قيمة افتراضية. من - الصورة الأساسية لبناء صورة جديدة. يجب أن يكون هذا الإرشادات أول تعليمة غير تعليق في Dockerfile. الاستثناء الوحيد من هذه القاعدة هو عندما تريد استخدام متغير في الوسيطة
FROM. في هذه الحالة ، يمكن أن يسبقFROMإرشاداتARGأو أكثر. LABEL - يستخدم لإضافة بيانات التعريف إلى صورة ، مثل الوصف والإصدار والمؤلف.. إلخ. يمكنك تحديد أكثر منLABEL، وكل تعليمةLABELهي زوج قيمة مفتاح. RUN - سيتم تنفيذ الأوامر المحددة في هذه التعليمات أثناء عملية الإنشاء. ينشئ كل تعليمةRUNطبقة جديدة أعلى الصورة الحالية. إضافة - تستخدم لنسخ الملفات والدلائل من المصدر المحدد إلى الوجهة المحددة على صورة عامل ميناء. يمكن أن يكون المصدر ملفات أو أدلة محلية أو عنوان URL. إذا كان المصدر هو أرشيف القطران المحلي ، فسيتم تفريغه تلقائيًا في صورة Docker. COPY - يشبهADDلكن المصدر يمكن أن يكون ملفًا محليًا أو دليلًا فقط. ENV - يسمح لك هذا الإرشادات بتحديد متغير بيئة. CMD - يستخدم لتحديد أمر سيتم تنفيذه عند تشغيل حاوية. يمكنك استخدام تعليمةCMDواحدة فقط في Dockerfile. ENTRYPOINT - على غرارCMD، تحدد هذه التعليمات الأمر الذي سيتم تنفيذه عند تشغيل الحاوية. WORKDIR - يعين هذا التوجيه دليل العمل الحالي لتعليماتRUNوCMDوENTRYPOINTوCOPYوADD. USER - اضبط اسم المستخدم أوUIDلاستخدامه عند تشغيل أي من تعليماتRUNوCMDوENTRYPOINTوCOPYوADD. حجم - يتيح لك تحميل دليل الجهاز المضيف إلى الحاوية. EXPOSE - يستخدم لتحديد المنفذ الذي تستمع إليه الحاوية في وقت التشغيل.
لاستبعاد الملفات والدلائل من إضافتها إلى الصورة ، قم بإنشاء ملف
.dockerignore
في دليل السياق. يشبه بناء جملة
.dockerignore
ملف Git.
للحصول على مرجع كامل وشرح مفصل لتعليمات Dockerfile ، انظر الصفحة المرجعية الرسمية Dockerfile.
إنشاء Dockerfile
يتمثل السيناريو الأكثر شيوعًا عند إنشاء صور Docker في سحب صورة موجودة من سجل (عادةً من Docker Hub) وتحديد التغييرات التي تريد إجراؤها على الصورة الأساسية. الصورة الأساسية الأكثر استخدامًا عند إنشاء صور Docker هي جبال الألب لأنها صغيرة الحجم ومُحسّنة للتشغيل في ذاكرة الوصول العشوائي.
في هذا المثال ، سنقوم بإنشاء صورة Docker لخادم Redis. سنستخدم أحدث إصدار من أوبونتو 18.04 كصورة أساسية.
أولاً ، قم بإنشاء دليل يحتوي على Dockerfile وكافة الملفات الضرورية:
mkdir ~/redis_docker
انتقل إلى الدليل وإنشاء ملف Dockerfile التالي:
cd ~/redis_docker
nano Dockerfile
Dockerfile
FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD
دعنا نوضح معنى كل سطر في Dockerfile:
- في السطر
1نحدد الصورة الأساسية. تعليماتRUNالتي تبدأ في السطر3ستقوم بتحديث الفهرس apt وتثبيت حزمة "خادم redis" وتنظيف ذاكرة التخزين المؤقت apt الأوامر المستخدمة في التعليمات هي نفس الأوامر التي ستستخدمها لتثبيت redis على خادم Ubuntu. تحدد تعليمات EXPOSE المنفذ الذي يستمع إليه خادم redis. في السطر الأخير ، نستخدم تعليمةCMDلتعيين الأمر الافتراضي التي سيتم تنفيذها عند تشغيل الحاوية.
احفظ الملف وأغلق المحرر.
بناء الصورة
والخطوة التالية هي بناء الصورة. للقيام بذلك ، قم بتشغيل الأمر التالي من الدليل حيث يوجد Dockerfile:
docker build -t linuxize/redis.
يحدد الخيار
-t
اسم الصورة واختياريا اسم مستخدم وعلامة في تنسيق 'اسم المستخدم / imagename: العلامة'.
سيبدو ناتج عملية الإنشاء كما يلي:
Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest
عند اكتمال عملية الإنشاء ، سيتم إدراج الصورة الجديدة في قائمة الصور:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB
تشغيل الحاوية
الآن بعد أن تم إنشاء الصورة ، يمكنك تشغيل حاوية منها عن طريق تشغيل:
docker run -d -p 6379:6379 --name redis linuxize/redis
تخبر خيارات
-d
Docker بتشغيل الحاوية في الوضع المنفصل ، وسيقوم الخيار
-p 6379:6379
بنشر المنفذ 6379 على الجهاز المضيف
--name redis
خيار
--name redis
اسم الحاوية. الوسيطة الأخيرة
linuxize/redis
هي اسم الصورة ، والتي تُستخدم لتشغيل الحاوية.
عند بدء تشغيل الحاوية ، استخدم الأمر التالي لسرد جميع حاويات التشغيل:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
للتحقق من أن كل شيء يعمل لأنه يجب أن يستخدم
redis-cli
للاتصال بحاوية الرصيف:
redis-cli ping
يجب أن يستجيب خادم redis مع
PONG
.
استنتاج
غطى هذا البرنامج التعليمي فقط أساسيات استخدام Dockerfiles لبناء الصور. لمعرفة المزيد حول كيفية كتابة Dockerfiles وأفضل الممارسات الموصى بها ، راجع أفضل الممارسات لكتابة Dockerfiles.
كيفية الاتصال بحاوية عامل ميناء
يكون الاتصال بحاوية Docker قيد التشغيل مفيدًا عندما تريد معرفة ما يحدث داخل الحاوية. في هذا البرنامج التعليمي ، سنشرح كيفية إرفاق عملية تشغيل حاوية الرئيسي وكيفية الحصول على قذيفة في حاوية تشغيل.
كيفية تثبيت واستخدام عامل ميناء يؤلف على centos 7
Docker Compose هي أداة تسمح لك بتحديد وتشغيل تطبيقات Docker متعددة الحاويات. باستخدام "إنشاء" ، يمكنك تحديد خدمات وشبكات وأحجام التطبيق في ملف YAML واحد ، ثم تدور التطبيق الخاص بك باستخدام أمر واحد.
كيفية تثبيت واستخدام عامل ميناء يؤلف على ديبيان 10 لينكس
Docker Compose هي أداة تسمح لك بتحديد وتنسيق تطبيقات Docker متعددة الحاويات. يشرح هذا البرنامج التعليمي كيفية تثبيت Docker Compose على Debian 10 ، Buster.







