English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عند تشغيل القارب، إذا لم تكن الصورة المستخدمة موجودة محليًا، فإن Docker سيقوم تلقائيًا بتحميلها من مستودع صور Docker، افتراضيًا من مستودع الصور العامة Docker Hub.
دعونا نتعلم:
1、إدارة واستخدام صورة Docker المحلية
2、إنشاء صورة
يمكننا استخدام docker images لإدراج صورة على المستضيف المحلي.
w3codebox@w3codebox:~$ docker images مكتبة العلامة معرف الصورة تاريخ الإنشاء حجم ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd أحدث 02ef73cf1bc0 3 أسابيع مضت 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world أحدث 690ed74de00f 6 شهرًا مضيًا 960 ب training/webapp latest 6fae60ef3446 11 months ago 348.8 MB
شرح الخيارات المختلفة:
REPOSITORY:ممثل مستودع الصورة
TAG:علامة الصورة
IMAGE ID:معرف الصورة
CREATED:وقت إنشاء الصورة
SIZE:حجم الصورة
يمكن أن يكون هناك عدة TAGS في نفس مستودع، وكل منها يمثل إصدارًا مختلفًا من المستودع، مثل أن يكون لدينا في مستودع ubuntu إصدارات 15.10 و14.04 وغيرها من الإصدارات المختلفة، ونستخدم REPOSITORY:TAG لتحديد صورة مختلفة.
لذا، إذا أردنا تشغيل قارب باستخدام صورة نظام ubuntu:15.10، فإن الأمر هو:
w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash root@d77ccb2e5cca:/#
شرح المعلمات:
-i: العمليات التفاعلية.
-t: الطرفية.
ubuntu:15.10: هذا يعني بدء القارب باستخدام صورة ubuntu 15.10 كأساس.
/bin/bashالسطر الذي يأتي بعد اسم الصورة هو الأمر، هنا نريد Shell تفاعلي، لذا نستخدم /bin/bash.
إذا كنت ترغب في تشغيل قارب باستخدام صورة نظام ubuntu:14.04، فإن الأمر هو:
w3codebox@w3codebox:~$ docker run -t -i ubuntu:14.04 /bin/bash root@39e968165990:/#
إذا لم تُحدد نسخة معينة من الصورة، مثل استخدام ubuntu فقط، فإن Docker سيستخدم افتراضيًا الصورة ubuntu:latest.
عندما نستخدم صورة غير موجودة على المستضيف المحلي، يقوم Docker تلقائيًا بتحميل هذه الصورة. إذا أردنا تحميل هذه الصورة مسبقًا، يمكننا استخدام الأمر docker pull لتحميلها.
Cw3codebox@w3codebox:~$ docker pull ubuntu:13.10 13.10: سحب من مكتبة/ubuntu 6599cadaf950: تم التنزيل كاملًا 23eda618d451: تم التنزيل كاملًا f0be3084efe9: تم التنزيل كاملًا 52de432f084b: تم التنزيل كاملًا a3ed95caeb02: تم التنزيل كاملًا الرقم المتميز: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3 الحالة: تم تنزيل الصورة الجديدة لأحدث إصدار من ubuntu:13.10
بعد الانتهاء من التحميل، يمكننا استخدام هذه الصورة مباشرة لتشغيل الحاوية.
يمكننا البحث عن الصور من موقع Docker Hub، عنوان Docker Hub هو:https://hub.docker.com/
يمكننا أيضًا استخدام الأمر docker search للبحث عن الصور. على سبيل المثال، نحتاج إلى صورة httpd كخدمة web. يمكننا البحث عن httpd باستخدام الأمر docker search للعثور على الصورة المناسبة لنا.
w3codebox@w3codebox:~$ docker search httpd
NAME: اسم مصدر صورة الصور
DESCRIPTION: وصف الصورة
OFFICIAL: هل هو إصدار رسمي من docker
stars: مثل star في Github، يعني إعجاب أو تفضيل.
AUTOMATED: بناء تلقائي.
لقد قررنا استخدام صورة httpd الرسمية من الشكل السابق، باستخدام الأمر docker pull لتنزيل الصورة.
w3codebox@w3codebox:~$ docker pull httpd استخدام العلامة الافتراضية: أحدث أحدث: سحب من مكتبة/httpd سحب طبقة fs تنزيل كامل تنزيل كامل تنزيل كامل ea7c1f032b5c: Waiting be44112b72c7: Waiting
بعد إكمال التحميل، يمكننا استخدام هذه الصورة.
w3codebox@w3codebox:~$ docker run httpd
استخدام لحذف الصورة docker rmi أمر، مثل نحن نزيل صورة hello-world:
$ docker rmi hello-world
عندما لا تكون الصورة التي تم تنزيلها من مستودع صور Docker مرضية لنا، يمكننا تعديل الصورة باستخدام إحدى الطريقتين التاليتين.
1- تحديث الصورة من الحاوية التي تم إنشاؤها بالفعل، وتقديم هذه الصورة
2- استخدام تعليمات Dockerfile لإنشاء صورة جديدة
قبل تحديث الصورة، يجب علينا استخدام الصورة لإنشاء حاوية جديدة.
w3codebox@w3codebox:~$ docker run -t -i ubuntu:15.10 /bin/bash root@e218edb10161:/#
استخدامها داخل الحاوية المعدة للعمل apt-get update للتحديث
بعد اكتمال العمل، اكتب أمر exit للخروج من هذه الحاوية.
في هذه الأثناء، الحاوية ذات المعرف ID e218edb10161 قد تم تعديلها وفقًا لطلبنا. يمكننا استخدام الأمر docker commit لتحديد نسخة الحاوية.
w3codebox@w3codebox:~$ docker commit -m="has update" -a="w3codebox" e218edb10161 w3codebox/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
شرح كل من الفوائد:
-m: معلومات الوصف المقدمة
-a: لتعيين مؤلف الصورة
e218edb10161:معرف الحاوية
w3codebox/ubuntu:v2: لتعيين اسم الصورة المستهدفة التي سيتم إنشاؤها
يمكننا استخدام docker images استخدام الأمر لمعاينة صورة الجديدة الخاصة بنا w3codebox/ubuntu:v2:
w3codebox@w3codebox:~$ docker images مكتبة العلامة معرف الصورة تاريخ الإنشاء حجم w3codebox/ubuntu v2 70bf1840fd7c 15 ثوانی پیش 158.5 MB ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB php 5.6 f40e9e0f10c8 9 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd أحدث 02ef73cf1bc0 3 أسابيع مضت 194.4 MB ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB hello-world أحدث 690ed74de00f 6 شهرًا مضيًا 960 ب training/webapp أحدث 6fae60ef3446 12 شهرًا مضيًا 348.8 MB
باستخدام صورةنا الجديدة w3codebox/ubuntu لإطلاق حاوية
w3codebox@w3codebox:~$ docker run -t -i w3codebox/ubuntu:v2 /bin/bash root@1a9fbdeb5da3:/#
نستخدم الأمر docker build ، من البداية نبدأ في إنشاء صورة جديدة. لذلك، نحتاج إلى إنشاء ملف Dockerfile يتضمن مجموعة من الأوامر توضح كيفية بناء صورة Docker الخاصة بنا.
w3codebox@w3codebox:~$ cat Dockerfile FROM centos:6.7 MAINTAINER Fisher "[email protected]" RUN /bin/echo 'root:123456' |chpasswd RUN useradd w3codebox RUN /bin/echo 'w3codebox:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D
كل تعليمات ستقوم بإنشاء طبقة جديدة على الصورة، وكل تعليمات يجب أن تبدأ بأحرف كبيرة.
FROM الأولى، تحديد مصدر الصورة الذي سيتم استخدامه
تعليمات RUN تخبر Docker عن تنفيذ الأوامر داخل الصورة، ما تم تثبيته......
ثم، نستخدم ملف Dockerfile، عبر الأمر docker build لبناء صورة.
w3codebox@w3codebox:~$ docker build -t w3codebox/centos:6.7 . إرسال سياق البناء إلى دايمون Docker 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "[email protected]" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd w3codebox ......
شرح المعلمات:
-t محدد اسم الصورة المستهدفة التي سيتم إنشاؤها
. Dockerfile الملف الموجود في الدليل، يمكن تحديد مسار Dockerfile المطلق
استخدام docker images لمعرفة أن الصورة التي تم إنشاؤها بالفعل موجودة في القائمة، معرف الصورة هو 860c279d2fec
w3codebox@w3codebox:~$ docker images مكتبة العلامة صورة معرف الصورة إنشاء حجم w3codebox/centos 6.7 860c279d2fec About a minute ago 190.6 MB w3codebox/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
يمكننا استخدام الصورة الجديدة لإنشاء الحاوية
w3codebox@w3codebox:~$ docker run -t -i w3codebox/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id w3codebox uid=500(w3codebox) gid=500(w3codebox) groups=500(w3codebox)
من فوق يمكننا رؤية أن الصورة الجديدة تحتوي على المستخدم الذي أنشأناه w3codebox.
يمكننا استخدام الأمر docker tag لاضافة علامة جديدة للصورة.
w3codebox@w3codebox:~$ docker tag 860c279d2fec w3codebox/centos:dev
docker tag ID الصورة، هنا 860c279d2fec، اسم المستخدم، اسم مكتبة الصورة (repository name) واسم العلامة الجديدة (tag).
باستخدام الأمر docker images يمكن رؤية أن الصورة ذات المعرف 860c279d2fec تحتوي على علامة إضافية.
w3codebox@w3codebox:~$ docker images مكتبة العلامة معرف الصورة تاريخ الإنشاء حجم w3codebox/centos 6.7 860c279d2fec 5 hours ago 190.6 MB w3codebox/centos dev 860c279d2fec 5 hours ago 190.6 MB w3codebox/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 13 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd أحدث 02ef73cf1bc0 3 أسابيع مضت 194.4 MB ubuntu 15.10 4e3b13c8a266 5 أسابيع مضت 136.3 MB hello-world أحدث 690ed74de00f 6 شهرًا مضيًا 960 ب centos 6.7 d95b5ca17cc3 6 شهرًا مضيًا 190.6 MB training/webapp أحدث 6fae60ef3446 12 شهرًا مضيًا 348.8 MB