
قم بتشغيل Windows داخل حاوية Docker مع تسريع KVM، والتثبيت التلقائي، والموارد القابلة للتخصيص. يدعم إصدارات متعددة من Windows، ونقل USB، وشبكات macvlan.
ويندوز داخل حاوية دوكر.
services:
windows:
image: dockurr/windows
container_name: windows
environment:
VERSION: "11"
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
volumes:
- ./windows:/storage
restart: always
stop_grace_period: 2m
docker run -it --rm --name windows -e "VERSION=11" -p 8006:8006 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/windows:/storage" --stop-timeout 120 docker.io/dockurr/windows
kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/master/kubernetes.yml
[!NOTE] دوكر دسكتوب على لينكس وmacOS وويندوز 10 لا يوفر حاليًا وصول KVM للحاويات وبالتالي فهو غير مدعوم.
بسيط جدًا! هذه هي الخطوات:
ابدأ الحاوية واتصل بالمنفذ 8006 باستخدام متصفح الويب الخاص بك.
استرخِ بينما يحدث السحر، سيتم التثبيت بأكمله تلقائيًا بالكامل.
بمجرد رؤية سطح المكتب، يكون تثبيت ويندوز جاهزًا للاستخدام.
استمتع بجهازك الجديد، ولا تنسَ وضع نجمة لهذا المستودع!
بشكل افتراضي، سيتم تثبيت ويندوز 11 برو. ولكن يمكنك إضافة متغير البيئة VERSION إلى ملف compose الخاص بك لتحديد إصدار ويندوز بديل ليتم تنزيله:
environment:
VERSION: "10"
اختر من القيم أدناه:
[!TIP] لتثبيت إصدارات ARM64 من ويندوز استخدم dockur/windows-arm.
لتغيير موقع التخزين، قم بتضمين الربط التالي في ملف compose الخاص بك:
volumes:
- ./windows:/storage
استبدل المسار المثال ./windows بمجلد التخزين المطلوب أو وحدة التخزين المسماة.
لتوسيع الحجم الافتراضي البالغ 64 جيجابايت، أضف إعداد DISK_SIZE إلى ملف compose الخاص بك واضبطه على السعة المفضلة لديك:
environment:
DISK_SIZE: "256G"
[!TIP] يمكن أيضًا استخدام هذا لتغيير حجم قرص موجود إلى سعة أكبر دون فقدان أي بيانات. ومع ذلك، ستحتاج إلى تمديد قسم القرص يدويًا بعد ذلك، حيث ستظهر مساحة القرص المضافة كمساحة غير مخصصة.
بعد التثبيت، سيكون هناك مجلد يسمى Shared على سطح المكتب الخاص بك، والذي يمكن استخدامه لتبادل الملفات مع جهاز المضيف.
لتحديد مجلد على المضيف لهذا الغرض، قم بتضمين الربط التالي في ملف compose الخاص بك:
volumes:
- ./example:/shared
استبدل المسار المثال ./example بمجلد المشاركة المطلوب، والذي سيصبح بعد ذلك مرئيًا كـ Shared.
بشكل افتراضي، سيسمح لويندوز باستخدام 2 نواة وحدة معالجة مركزية و 4 جيجابايت من ذاكرة الوصول العشوائي.
إذا كنت ترغب في تعديل ذلك، يمكنك تحديد الكمية المطلوبة باستخدام متغيرات البيئة التالية:
environment:
RAM_SIZE: "8G"
CPU_CORES: "4"
بشكل افتراضي، يتم إنشاء مستخدم باسم Docker وكلمة المرور الخاصة به هي admin.
إذا كنت ترغب في إعداد بيانات اعتماد مختلفة أثناء التثبيت، يمكنك تكوينها في ملف compose الخاص بك:
environment:
USERNAME: "bill"
PASSWORD: "gates"
بشكل افتراضي، سيتم تنزيل النسخة الإنجليزية من ويندوز.
ولكن يمكنك إضافة متغير البيئة LANGUAGE إلى ملف compose الخاص بك لتحديد لغة بديلة ليتم تنزيلها:
environment:
LANGUAGE: "French"
يمكنك الاختيار بين: 🇦🇪 العربية, 🇧🇬 البلغارية, 🇨🇳 الصينية, 🇭🇷 الكرواتية, 🇨🇿 التشيكية, 🇩🇪 الألمانية, 🇩🇰 الدنماركية, 🇬🇧 الإنجليزية, 🇪🇪 الإستونية, 🇫🇮 الفنلندية, 🇫🇷 الفرنسية, 🇮🇱 العبرية, 🇭🇺 المجرية, 🇮🇹 الإيطالية, 🇯🇵 اليابانية, 🇰🇷 الكورية, 🇱🇻 اللاتفية, 🇱🇹 الليتوانية, 🇳🇱 الهولندية, 🇳🇴 النرويجية, 🇵🇱 البولندية, 🇵🇹 البرتغالية, 🇷🇴 الرومانية, 🇷🇺 الروسية, 🇷🇸 الصربية, 🇸🇰 السلوفاكية, 🇸🇮 السلوفينية, 🇪🇸 الإسبانية, 🇸🇪 السويدية, 🇹🇭 التايلاندية, 🇹🇷 التركية و 🇺🇦 الأوكرانية.
إذا كنت ترغب في إعداد تخطيط لوحة مفاتيح أو إعدادات محلية ليست الافتراضية للغة المحددة، يمكنك إضافة متغيرات KEYBOARD وREGION مثل هذا:
environment:
REGION: "en-US"
KEYBOARD: "en-US"
لتنزيل صورة ISO غير مدعومة، حدد عنوان URL الخاص بها في متغير البيئة VERSION:
environment:
VERSION: "https://example.com/win.iso"
بدلاً من ذلك، يمكنك أيضًا تخطي التنزيل واستخدام ملف محلي بدلاً من ذلك، عن طريق ربطه في ملف compose الخاص بك بهذه الطريقة:
volumes:
- ./example.iso:/custom.iso
استبدل المسار المثال ./example.iso باسم ملف ISO المطلوب. سيتم تجاهل قيمة VERSION في هذه الحالة.
لتشغيل السكريبت الخاص بك بعد التثبيت، يمكنك إنشاء ملف باسم install.bat ووضعه في مجلد مع أي ملفات إضافية يحتاجها (على سبيل المثال، برامج للتثبيت).
ثم اربط هذا المجلد في ملف compose الخاص بك مثل هذا:
volumes:
- ./example:/oem
سيتم نسخ المجلد المثال ./example إلى C:\OEM وسيتم تنفيذ ملف install.bat داخل ذلك المجلد خلال الخطوة الأخيرة من التثبيت التلقائي.
يُوصى بالالتزام بالتثبيت التلقائي، حيث يقوم بضبط إعدادات متنوعة لمنع المشكلات الشائعة عند تشغيل ويندوز داخل بيئة افتراضية.
ومع ذلك، إذا أصررت على إجراء التثبيت يدويًا (على مسؤوليتك الخاصة)، أضف متغير البيئة التالي إلى ملف compose الخاص بك:
environment:
MANUAL: "Y"
العارض عبر الويب مخصص بشكل أساسي للاستخدام أثناء التثبيت، نظرًا لأنه أقل استجابة من RDP ولا يدعم ميزات مثل مشاركة الحافظة.
لذا لتجربة أفضل، يمكنك الاتصال باستخدام أي عميل سطح مكتب بعيد من مايكروسوفت بعنوان IP الخاص بالحاوية، باستخدام اسم المستخدم Docker وكلمة المرور admin.
يتوفر عميل RDP لنظام أندرويد من متجر Play وواحد لنظام iOS في متجر آبل. بالنسبة للينكس يمكنك استخدام FreeRDP وعلى ويندوز فقط اكتب mstsc في مربع البحث.
الصوت معطل افتراضيًا إلا إذا كنت تستخدم RDP. لدفقه إلى المتصفح، أضف متغير البيئة التالي:
environment:
AUDIO: "Y"
ثم قم بتمكين الصوت ضمن الإعدادات → خيارات متقدمة في العارض عبر الويب. يكون الدفق نشطًا فقط أثناء تمكين هذا الخيار، لذلك لا يستخدم نطاقًا تردديًا إضافيًا بخلاف ذلك.
افتراضيًا، تستخدم الحاوية شبكة الجسر، والتي تشارك عنوان IP مع المضيف.
إذا كنت ترغب في تعيين عنوان IP فردي للحاوية، يمكنك إنشاء شبكة macvlan كما يلي:
docker network create -d macvlan \
--subnet=192.168.0.0/24 \
--gateway=192.168.0.1 \
--ip-range=192.168.0.100/28 \
-o parent=eth0 vlan
تأكد من تعديل هذه القيم لتتناسب مع شبكتك المحلية.
بمجرد إنشاء الشبكة، قم بتعديل ملف compose الخاص بك ليبدو كما يلي:
services:
windows:
container_name: windows
..<snip>..
networks:
vlan:
ipv4_address: 192.168.0.100
networks:
vlan:
external: true
من الفوائد الإضافية لهذا النهج أنك لن تضطر إلى إجراء أي تعيين منفذ بعد الآن، حيث سيتم كشف جميع المنافذ افتراضيًا.
[!IMPORTANT]
لن يكون عنوان IP هذا متاحًا من مضيف دوكر بسبب تصميم macvlan، الذي لا يسمح بالاتصال بينهما. إذا كان هذا مصدر قلق، فأنت بحاجة إلى إنشاء macvlan ثاني كحل بديل.
بعد تكوين الحاوية لـ macvlan، من الممكن أن يصبح ويندوز جزءًا من شبكة منزلك عن طريق طلب عنوان IP من جهاز التوجيه الخاص بك، تمامًا مثل جهاز كمبيوتر حقيقي.
لتمكين هذا الوضع، حيث سيكون للحاوية وويندوز عناوين IP منفصلة، أضف الأسطر التالية إلى ملف compose الخاص بك:
environment:
DHCP: "Y"
devices:
- /dev/vhost-net
device_cgroup_rules:
- 'c *:* rwm'
لإنشاء أقراص إضافية، قم بتعديل ملف compose الخاص بك مثل هذا:
environment:
DISK2_SIZE: "32G"
DISK3_SIZE: "64G"
volumes:
- ./example2:/storage2
- ./example3:/storage3
يمكنك تمرير أجهزة القرص أو الأقسام مباشرة عن طريق إضافتها إلى ملف compose الخاص بك بهذه الطريقة:
devices:
- /dev/sdb:/disk1
- /dev/sdc1:/disk2
استخدم /disk1 إذا كنت تريد أن يصبح محرك الأقراص الرئيسي لديك (والذي سيتم تنسيقه أثناء التثبيت)، واستخدم /disk2 وما فوق لإضافتها كمحركات أقراص ثانوية (والتي ستبقى دون تغيير).
لتمرير جهاز USB، ابحث أولاً عن معرفات البائع والمنتج الخاصة به عبر الأمر lsusb، ثم أضفها إلى ملف compose الخاص بك مثل هذا:
environment:
ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234"
devices:
- /dev/bus/usb
[!WARNING]
قد تؤدي إضافة جهاز تخزين USB قبل انتهاء إعداد ويندوز إلى فشله. أو الأسوأ: قد يتم تنسيق القرص كقرص النظام، وسيتم فقدان جميع بياناتك! لذا، احتفظ بها دائمًا مفصولة عند تشغيل الحاوية لأول مرة.
لا. للحصول على نظرة عامة كاملة عن جميع الإعدادات المدعومة، راجع صفحة متغيرات البيئة.
أولاً، تأكد من أن منصتك وبيئة تشغيل الحاوية تفي بالمتطلبات المذكورة أعلاه.
على مضيف لينكس، قم بتثبيت cpu-checker وقم بتشغيل:
sudo apt install cpu-checker
sudo kvm-ok
يجب أن يبلغ التكوين العامل:
KVM acceleration can be used
يمكنك أيضًا التحقق من وجود جهاز KVM:
ls -l /dev/kvm
إذا كان KVM غير متوفر، تحقق مما يلي:
Intel VT-x أو AMD-V) في BIOS أو UEFI الخاص بك.إذا نجح kvm-ok ولكن الحاوية لا تزال تبلغ أن KVM غير متوفر، يمكنك إضافة privileged: true مؤقتًا إلى ملف Compose الخاص بك لاستبعاد مشكلة الإذن أو الوصول إلى الجهاز.
يمكنك استخدام dockur/macos لذلك. يشارك العديد من الميزات نفسها، باستثناء التثبيت التلقائي.
يمكنك استخدام qemus/qemu في هذه الحالة.
نعم، يحتوي هذا المشروع فقط على كود مفتوح المصدر ولا يقوم بتوزيع ويندوز نفسه. أي مفاتيح منتج موجودة في الكود هي مفاتيح تثبيت عامة نشرتها مايكروسوفت لأغراض تجريبية وليست تراخيص تنشيط صالحة.
أنت مسؤول عن ضمان حصولك على ترخيص ويندوز صالح وأن استخدامك يتوافق مع شروط ترخيص مايكروسوفت.
إن أسماء المنتجات والشعارات والعلامات التجارية والعلامات التجارية الأخرى المشار إليها ضمن هذا المشروع هي ملك لأصحاب العلامات التجارية المعنيين. هذا المشروع ليس تابعًا أو برعاية أو مؤيدًا من قبل شركة مايكروسوفت.
| القيمة | الإصدار | الحجم |
|---|
11 | ويندوز 11 برو | 7.9 GB |
11l | ويندوز 11 LTSC | 4.7 GB |
11e | ويندوز 11 إنتربرايز | 6.6 GB |
10 | ويندوز 10 برو | 5.7 GB |
10l | ويندوز 10 LTSC | 4.6 GB |
10e | ويندوز 10 إنتربرايز | 5.2 GB |
8e | ويندوز 8.1 إنتربرايز | 3.7 GB |
7u | ويندوز 7 ألتيميت | 3.1 GB |
vu | ويندوز فيستا ألتيميت | 3.0 GB |
xp | ويندوز إكس بي بروفيشنال | 0.6 GB |
2k | ويندوز 2000 بروفيشنال | 0.4 GB |
2025 | ويندوز سيرفر 2025 | 7.6 GB |
2022 | ويندوز سيرفر 2022 | 6.0 GB |
2019 | ويندوز سيرفر 2019 | 5.3 GB |
2016 | ويندوز سيرفر 2016 | 6.5 GB |
2012 | ويندوز سيرفر 2012 | 4.3 GB |
2008 | ويندوز سيرفر 2008 | 3.0 GB |
2003 | ويندوز سيرفر 2003 | 0.6 GB |