
windows v6.03
قم بتشغيل Windows داخل حاوية Docker مع تسريع KVM، والتثبيت التلقائي، والموارد القابلة للتخصيص. يدعم إصدارات متعددة من Windows، ونقل USB، وشبكات macvlan.
ويندوز
ويندوز داخل حاوية دوكر.
الميزات ✨
- تشغيل ويندوز داخل حاوية دوكر
- تحميل تلقائي وتثبيت بدون تدخل
- يدعم إصدارات ويندوز الحديثة والقديمة
- أداء قريب من الأصلي مع تسريع KVM
- تخصيص وحدة المعالجة المركزية والذاكرة والتخزين
- تخصيص ديناميكي للذاكرة باستخدام تقنية البالون
- تمرير USB ومشاركة مجلد المضيف
- يدعم شبكات NAT ووضع المستخدم وmacvlan وmacvtap
فيديو 📺
الاستخدام 🐳
دوكر كومبوز:
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
جيت هاب Codespaces:
المثبت الرسومي:
المتطلبات ⚙️
- دوكر أو بودمان على مضيف لينكس مع دعم KVM.
- دوكر دسكتوب أو بودمان (دسكتوب) على ويندوز 11 مع تمكين المحاكاة الافتراضية المتداخلة.
- ذاكرة وصول عشوائي متوفرة بحجم 4 جيجابايت على الأقل.
- مساحة قرص خالية بحجم 64 جيجابايت على الأقل.
[!NOTE] دوكر دسكتوب على لينكس وmacOS وويندوز 10 لا يوفر حاليًا وصول KVM للحاويات وبالتالي فهو غير مدعوم.
الأسئلة الشائعة 💬
كيف أستخدمه؟
بسيط جدًا! هذه هي الخطوات:
-
ابدأ الحاوية واتصل بالمنفذ 8006 باستخدام متصفح الويب الخاص بك.
-
استرخِ بينما يحدث السحر، سيتم التثبيت بأكمله تلقائيًا بالكامل.
-
بمجرد رؤية سطح المكتب، يكون تثبيت ويندوز جاهزًا للاستخدام.
استمتع بجهازك الجديد، ولا تنسَ وضع نجمة لهذا المستودع!
كيف أختار إصدار ويندوز؟
بشكل افتراضي، سيتم تثبيت ويندوز 11 برو. ولكن يمكنك إضافة متغير البيئة VERSION إلى ملف compose الخاص بك لتحديد إصدار ويندوز بديل ليتم تنزيله:
environment:
VERSION: "10"
اختر من القيم أدناه:
| القيمة | الإصدار | الحجم |
|---|---|---|
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 |
[!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؟
العارض عبر الويب مخصص بشكل أساسي للاستخدام أثناء التثبيت، نظرًا لأنه أقل استجابة من RDP ولا يدعم ميزات مثل مشاركة الحافظة.
لذا لتجربة أفضل، يمكنك الاتصال باستخدام أي عميل سطح مكتب بعيد من مايكروسوفت بعنوان IP الخاص بالحاوية، باستخدام اسم المستخدم Docker وكلمة المرور admin.
يتوفر عميل RDP لنظام أندرويد من متجر Play وواحد لنظام iOS في متجر آبل. بالنسبة للينكس يمكنك استخدام FreeRDP وعلى ويندوز فقط اكتب mstsc في مربع البحث.
كيف أقوم بتمكين الصوت؟
الصوت معطل افتراضيًا إلا إذا كنت تستخدم RDP. لدفقه إلى المتصفح، أضف متغير البيئة التالي:
environment:
AUDIO: "Y"
ثم قم بتمكين الصوت ضمن الإعدادات → خيارات متقدمة في العارض عبر الويب. يكون الدفق نشطًا فقط أثناء تمكين هذا الخيار، لذلك لا يستخدم نطاقًا تردديًا إضافيًا بخلاف ذلك.
كيف أعين عنوان IP فردي للحاوية؟
افتراضيًا، تستخدم الحاوية شبكة الجسر، والتي تشارك عنوان 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 ثاني كحل بديل.
كيف يمكن لويندوز الحصول على عنوان IP من جهاز التوجيه الخاص بي؟
بعد تكوين الحاوية لـ 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؟
لتمرير جهاز USB، ابحث أولاً عن معرفات البائع والمنتج الخاصة به عبر الأمر lsusb، ثم أضفها إلى ملف compose الخاص بك مثل هذا:
environment:
ARGUMENTS: "-device usb-host,vendorid=0x1234,productid=0x1234"
devices:
- /dev/bus/usb
[!WARNING]
قد تؤدي إضافة جهاز تخزين USB قبل انتهاء إعداد ويندوز إلى فشله. أو الأسوأ: قد يتم تنسيق القرص كقرص النظام، وسيتم فقدان جميع بياناتك! لذا، احتفظ بها دائمًا مفصولة عند تشغيل الحاوية لأول مرة.
هل هذه جميع الخيارات المتاحة؟
لا. للحصول على نظرة عامة كاملة عن جميع الإعدادات المدعومة، راجع صفحة متغيرات البيئة.
كيف أتحقق من توفر KVM؟
أولاً، تأكد من أن منصتك وبيئة تشغيل الحاوية تفي بالمتطلبات المذكورة أعلاه.
على مضيف لينكس، قم بتثبيت 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 الخاص بك. - تم تمكين المحاكاة الافتراضية المتداخلة عندما يكون المضيف نفسه جهازًا افتراضيًا.
- يدعم موفر VPS أو السحابة الخاصة بك المحاكاة الافتراضية المتداخلة.
إذا نجح kvm-ok ولكن الحاوية لا تزال تبلغ أن KVM غير متوفر، يمكنك إضافة privileged: true مؤقتًا إلى ملف Compose الخاص بك لاستبعاد مشكلة الإذن أو الوصول إلى الجهاز.
كيف أشغل macOS في حاوية؟
يمكنك استخدام dockur/macos لذلك. يشارك العديد من الميزات نفسها، باستثناء التثبيت التلقائي.
كيف أشغل سطح مكتب لينكس في حاوية؟
يمكنك استخدام qemus/qemu في هذه الحالة.
هل هذا المشروع قانوني؟
نعم، يحتوي هذا المشروع فقط على كود مفتوح المصدر ولا يقوم بتوزيع ويندوز نفسه. أي مفاتيح منتج موجودة في الكود هي مفاتيح تثبيت عامة نشرتها مايكروسوفت لأغراض تجريبية وليست تراخيص تنشيط صالحة.
أنت مسؤول عن ضمان حصولك على ترخيص ويندوز صالح وأن استخدامك يتوافق مع شروط ترخيص مايكروسوفت.
النجوم 🌟
إخلاء المسؤولية ⚖️
إن أسماء المنتجات والشعارات والعلامات التجارية والعلامات التجارية الأخرى المشار إليها ضمن هذا المشروع هي ملك لأصحاب العلامات التجارية المعنيين. هذا المشروع ليس تابعًا أو برعاية أو مؤيدًا من قبل شركة مايكروسوفت.


