إذا كنت جديدًا في عالم الحاويات و Docker وتعمل في الدرجة الأولى على نظام Windows، فستكون هناك مفاجأة لك. في هذا المقال، ستتعلم كيفية إعداد Docker على Windows 10 باستخدام Docker Desktop for Windows أو المعروف ببساطة باسم Docker Desktop في هذا المقال.
Docker Desktop هو محرك Docker وعميل إدارة يتم تجميعهما معًا لسهولة الاستخدام في Windows 10. في هذا المقال، ستقوم بتثبيت Docker Desktop ونشر أول حاوية لديك، ومشاركة البيانات بين جهاز الاستضافة والحاويات الخاصة بك.
المتطلبات الأساسية لتشغيل Docker على Windows
هذا مقال توجيه يظهر خطوات مختلفة في Docker Desktop لـ Docker على Windows. لمتابعة الخطوات، تأكد من توفر بعض المتطلبات الخاصة أولاً.
- اتصال بالإنترنت لتنزيل أكثر من 800 ميجابايت من البيانات
- نظام Windows 10 بنسخة 64 بت تعمل بإصدار Pro أو Enterprise أو Education بإصدار 1703 أو أحدث. هذا ضروري لتشغيل Hyper-V على Windows 10.
- A CPU with SLAT (nested paging) compatibility. All AMD/Intel processors since approximately 2008 are SLAT compatible
- ذاكرة وصول عشوائي (RAM) بحد أقل 4 جيجابايت
- تقنية الاختزال الافتراضية في BIOS والمسماة أحيانًا بـ تقنية الاختزال الافتراضية أو VTx. يجب تمكين هذا وأن يظهر باسم تمكين في علامة الأداء في إدارة المهام كما هو موضح أدناه.

تنزيل وتثبيت Docker Desktop
أولًا ، تحتاج إلى تنزيل وتثبيت برنامج Docker Desktop لتشغيل Docker على نظام Windows. يتوفر Docker Desktop في نسختين؛ النسخة الثابتة والنسخة التجريبية.
النسخة الثابتة تصدر ربع سنويًا وتضمن تطبيقًا تم اختباره بالكامل. في هذه المقالة ، ستستخدم النسخة الثابتة.
تحذير: عند التثبيت ، سيقوم Docker Desktop بطلب تثبيت مدير الأجهزة الظاهري Hyper-V إذا لم يكن مثبتًا بالفعل. من خلال ذلك ، يمنع مدير الأجهزة الظاهري Hyper-V تشغيل أية أجهزة افتراضية من وضع المستخدم مثل VirtualBox و VMWare وما إلى ذلك. دعم Hyper-V لـ VirtualBox و VMWare محدود ولكنه قادم.
لديك أيضًا خيار تنزيل Docker Desktop مباشرة من Docker.com أو عبر مدير حزم Windows المسمى Chocolatey. دعنا نغطي كل طريقة بإيجاز.
من Docker.com
لتنزيل “دوكر ديسكتوب” مباشرة من docker.com، يمكنك الانتقال إلى صفحة المنتج، والتسجيل للحصول على حساب ثم تنزيله من هناك. يُفضل ذلك إذا كنت تنوي استخدام “دوكر” في الإنتاج عن طريق تسجيل حساب.
ومع ذلك، إذا كنت تختبر “دوكر” للمرة الأولى، يمكنك أيضًا تنزيله مباشرة وهذا أسهل بكثير.
بمجرد تنزيل الملف التنفيذي، قم بتشغيله واتبع التعليمات المقدمة وقبول جميع الإعدادات الافتراضية.
عندما يتم طرح السؤال عما إذا كنت تخطط لـ استخدام حاويات ويندوز بدلاً من حاويات لينكس، كما هو موضح أدناه، قم بـ عدم تمكين خانة الاختيار. ستكون تستخدم حاويات لينكس في هذه المقالة.

بمجرد الانتهاء من التثبيت، أعد تشغيل الكمبيوتر.
اختيار الخيار لاستخدام حاويات ويندوز أو حاويات لينكس يخبر “دوكر” بتعيين الصور على نواة ويندوز أو نواة لينكس. يمكنك تغيير هذا الإعداد في أي وقت بعد التثبيت بالنقر بزر الماوس الأيمن على أيقونة “دوكر” في شريط النظام واختيار “التبديل إلى حاويات ويندوز” كما هو موضح أدناه.

استخدام “شوكولاتي”
الخيار الآخر لتنزيل وتثبيت Docker Desktop هو باستخدام Chocolatey. يقوم Chocolatey بتلقائية العديد من مهام التنزيل والتثبيت بالنيابة عنك. للقيام بذلك ، افتح وحدة تحكم سطر الأوامر (سواءً كانت cmd أو PowerShell) كمسؤول لتنزيل وتثبيت البرنامج في مرة واحدة عن طريق تشغيل الأمر التالي.
بمجرد الانتهاء ، أعد تشغيل Windows 10.
إذا كنت ترغب في تجربة الإصدار التجريبي في بعض الأحيان ، يمكنك تنزيل وتثبيت ذلك بتشغيل
choco install docker-desktop --pre
.
التحقق من تثبيت Docker Desktop
بمجرد التثبيت ، يعمل Docker Desktop تلقائيًا كخدمة توفير Docker على نظام Windows. يظهر في شريط المهام عند تسجيل الدخول إلى Windows بعد إعادة التشغيل. ولكن كيف يمكنك أن تعرف فعلاً أنه يعمل؟
للتحقق من أن Docker Desktop يعمل بشكل صحيح ، افتح وحدة تحكم سطر الأوامر وقم بتشغيل الأمر docker
. إذا كان التثبيت ناجحًا ، سترى مرجع أوامر Docker.
وأخيرًا ، دع Docker يقوم بتنزيل وتشغيل صورة حاوية تجريبية تسمى hello-world بتشغيل الأمر docker run hello-world
. إذا كان كل شيء على ما يرام ، سترى إخراجًا مثلما هو موضح أدناه.

تشغيل الأوامر في حاويات Docker
تم تثبيت Docker Desktop وتحققت من أن كل شيء على ما يرام؟ الآن ماذا؟ للبدء مع Docker على نظام Windows، فإن المهمة الشائعة لتنفيذها في حاوية Docker هي تشغيل الأوامر. من خلال الأمر docker run
، يمكنك إرسال الأوامر من خلال المضيف (جهاز الكمبيوتر الخاص بك الذي يعمل بنظام Windows 10) مباشرةً إلى حاوية تعمل.
لتشغيل الأوامر في حاوية باستخدام docker run
، ستقوم أولاً بتحديد اسم الصورة تليها الأمر. للبدء، قم بإخبار Docker بتشغيل الأمر hostname
داخل حاوية تسمى alpine كما هو موضح أدناه.
نظرًا لعدم وجود صورة Docker alpine على جهاز الكمبيوتر الخاص بك الآن، سيقوم Docker على نظام Windows بتنزيل الصورة الصغيرة من مستودع Docker Hub، ثم تشغيل حاوية من تلك الصورة، وإرسال الأمر مباشرةً إلى الحاوية وإيقاف تشغيلها في خطوة واحدة.
إذا كنت ترغب في الاحتفاظ بتشغيل الحاوية، يمكنك أيضًا استخدام المعامل -it
. يُخبر هذا المعامل Docker بالاحتفاظ بالحاوية في “وضع تفاعلي”، مما يتركها تعمل في المقدمة بعد تنفيذ الأمر. سترى بعد ذلك أنه يتم تقديم موجه الأوامر مستعدة للاستخدام.
عند الانتهاء من استخدام المحطة، اكتب exit
للعودة إلى Windows 10.
الوصول إلى الملفات من مضيف Docker في الحاويات
مهمة شائعة أخرى هي الوصول إلى ملفات المضيف من الحاويات. للوصول إلى ملفات المضيف في الحاويات، يُسمح لك Docker على Windows بربط مسار مجلد من سطح مكتبك لمشاركة تلك المجلد مع حاويتك. يُطلق على هذه العملية مصطلح الربط.
لإنشاء ربط، قم بإنشاء مجلد على محرك أقراص محلي. لهذا المثال، سأستخدم E:\ وسأسميه input. ثم سيتم إنشاء مستند نصي جديد يُسمى file.txt في المجلد. لا تتردد في استخدام أي مسار وملف ترغب فيه.
بمجرد أن يكون لديك المجلد الذي ترغب في مشاركته بين المضيف والحاوية، يحتاج Docker إلى تركيب المجلد باستخدام المعامل --mount
. يتطلب المعامل --mount
ثلاثة وسيطات؛ نوع تركيب، مسار مجلد المضيف المصدر ومسار مجلد الهدف. سيكون المسار الهدف رابطًا رمزيًا داخل الحاوية.
أدناه سترى مثالًا على تركيب المجلد E:\ بالكامل داخل مضيف Windows 10 ليظهر كمجلد /home/TEST داخل الحاوية Linux.
عند محاولتك لتركيب مجلد مضيف، سيطلب Docker Desktop إذنك لمشاركة هذا القرص مع حاويات Docker كما هو موضح أدناه.

إذا قمت بإنشاء ملف file.txt في مجلد Windows 10 كما هو موضح سابقًا، قم بتشغيل cat /home/TEST/input/file.txt
. سترى أن المحتويات معروضة.
الآن، احذف المجلد input الذي أنشأته للتو وقم بتشغيل أمر cat ...
مرة أخرى. لاحظ أن الشاشة النصية الآن تبلغ أن الملف لم يعد موجوداً.

تعيين منافذ الشبكة
مفهوم آخر مهم لمعرفته هو كيفية التعامل مع Docker على نظام Windows فيما يتعلق بالشبكات. لنلق نظرة سريعة على ما يلزم للوصول إلى خدمة ويب تعمل في حاوية من المضيف المحلي.
أولاً، قم بتشغيل صورة توضيحية ستقوم بتشغيل صفحة ويب توضيحية. قم بتنزيل وتشغيل صورة Docker المسماة dockersamples/static-site. ستستخدم docker container run
للقيام بذلك.
الأمر التالي يقوم بأربع أفعال في وقت واحد:
- يقوم بتنزيل صورة Docker من Docker Hub بعنوان static-site في “دليل” docker-samples
- يبدأ نسخة حاوية من الصورة static-site بالتشغيل
- يفصل الحاوية عن الطرفية الأمامية للنافذة النصية الفورية (
—detach
) - يجعل منافذ الشبكة الجارية للحاوية متاحة لمضيف Windows 10 (
—publish-all
)
عند التنفيذ، ستعود Docker برقم تعريف الحاوية التي تمت إحضارها كما هو موضح أدناه.

نشر منافذ الشبكة
منذ استخدام المعامل `--publish-all
`، تم الآن تعيين منافذ المضيف المحلي على مكدس شبكة الحاوية. يمكنك استخدام الأمر الفرعي `docker ps
` لسرد جميع الحاويات الجارية بما في ذلك المنافذ المخصصة لجميع الحاويات الجارية. في المثال أدناه، هناك حاوية واحدة تعمل تقوم بتعيين منفذ المضيف 32777 إلى منفذ الحاوية 80 ومنفذ المضيف 32776 إلى منفذ الحاوية 443.

يقوم Docker على Windows بتعيين منافذ عشوائية للحاويات عند استخدام المعامل `--publish-all
` ما لم يتم تحديدها صراحةً.
الآن، افتح متصفح ويب وانتقل إلى http://localhost:32777 أو المنفذ الذي عينه Docker ليتم تعيينه إلى المنفذ 80 كما يخرج بواسطة `docker ps
`. إذا سارت الأمور على ما يرام، يجب أن ترى صفحة الويب أدناه تظهر.

تغيير المنافذ المنشورة
لديك الآن حاوية Docker تعمل في Docker على Windows تقدم صفحة ويب بسيطة. تهانينا! ولكن الآن تحتاج إلى تحديد ربط منفذ محدد لا يعتمد على اختيار المنفذ العشوائي مع `--publish-all
`. لا مشكلة. استخدم المعامل `-p
`.
أولاً، أوقف تشغيل الحاوية الجارية بتحديد سلسلة فريدة من معرف الحاوية. يمكنك العثور على معرف الحاوية هذا بتشغيل `docker ps
`. بمجرد معرفة معرف الحاوية، أوقف الحاوية وابدأ واحدة جديدة مع تعيين Docker لتعيين منفذ محدد للنشر.
الـبنية لتحديد منفذ هي <منفذ خارجي>:<منفذ الحاوية>
. لكل منفذ ترغب في نشره، استخدم مفتاح --publish
أو -p
مع أرقام المنافذ الخارجية والحاوية كما هو موضح أدناه.
عند تحديد معرف الحاوية، يتعين عليك فقط كتابة ما يكفي من المعرف ليكون فريدًا. إذا كنت تقوم بتشغيل حاوية واحدة فقط وكان معرفها
f766f4ac8d66bf7
، يمكنك تحديد الحاوية باستخدام أي عدد من الأحرف بما في ذلكf
فقط. المتطلب هو أن يسمح لك ما تكتبه بتحديد بشكل فريد حاوية واحدة.
الآن انتقل إلى متصفح الويب الخاص بك وانتقل إلى localhost:1337
. تذكر، أنت لا تغير الصورة وأنها دائماً ما تستمع على المنفذ 80؛ أنت تغير قاعدة ترجمة المنفذ في تكوين Docker التي تتيح لك الاتصال بالحاوية.

إيقاف جميع الحاويات
باستخدام docker stop
، يمكنك إيقاف تشغيل حاوية واحدة ولكن كيف يمكنك إيقاف تشغيل عدة حاويات في وقت واحد؟ طريقة للقيام بذلك هي من خلال توفير معرفات حاويات متعددة مفصولة بالمسافة. يمكنك أن ترى أدناه مثال على كيفية إيقاف تشغيل ثلاث حاويات بمعرفات fd50b0a446e7
، 36ee57c3b7da
، و 7c45664906ff.
إذا كنت تدير حاويات Docker في PowerShell، يمكنك أيضًا استخدام اختصار لإيقاف جميع الحاويات. قم بتغذية قائمة بمعرفات الحاويات عبر
docker ps -q
إلى المعلمة stop من خلال توسيع الأمر في PowerShelldocker stop (docker ps -q)
.
تأكد من إيقاف جميع الحاويات عن طريق عدم ظهور أي حاويات عند كتابة docker ps
.
التنظيف
لقد قمت بتنزيل بعض صور الحاويات وتشغيل بعض الحاويات التي توقفت الآن. على الرغم من توقفها، فإن التخزين المخصص لها لم يختفي من قرص المضيف المحلي. يجب عليك حذف الحاويات لتحرير تلك المساحة وتجنب تكدس مساحة العمل الخاصة بك.
لحذف حاوية واحدة، استخدم المعلمة remove rm
كما هو موضح أدناه.
أو، لحذف جميع الحاويات التي توقفت، استخدم المعلمة prune
كما هو موضح أدناه.