النوافذ داخل حاوية Docker.
عبر Docker Compose:
services :
windows :
image : dockurr/windows
container_name : windows
environment :
VERSION : " 11 "
devices :
- /dev/kvm
cap_add :
- NET_ADMIN
ports :
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period : 2m
عبر Docker CLI:
docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows
عبر كوبرنيتيس:
kubectl apply -f kubernetes.yml
بسيط جدا! هذه هي الخطوات:
ابدأ الحاوية واتصل بالمنفذ 8006 باستخدام متصفح الويب الخاص بك.
اجلس واسترخي بينما يحدث السحر، سيتم إجراء التثبيت بالكامل تلقائيًا بالكامل.
بمجرد رؤية سطح المكتب، يكون تثبيت Windows جاهزًا للاستخدام.
استمتع بجهازك الجديد، ولا تنسَ وضع نجمة على هذا الريبو!
افتراضيًا، سيتم تثبيت نظام التشغيل Windows 11. ولكن يمكنك إضافة متغير البيئة VERSION
إلى ملف الإنشاء الخاص بك، من أجل تحديد إصدار Windows بديل ليتم تنزيله:
environment :
VERSION : " 11 "
اختر من القيم أدناه:
قيمة | إصدار | مقاس |
---|---|---|
11 | ويندوز 11 برو | 5.4 جيجابايت |
11l | ويندوز 11 إل تي إس سي | 4.2 جيجابايت |
11e | ويندوز 11 المؤسسة | 5.8 جيجابايت |
10 | ويندوز 10 برو | 5.7 جيجابايت |
10l | ويندوز 10 إل تي إس سي | 4.6 جيجابايت |
10e | ويندوز 10 المؤسسة | 5.2 جيجابايت |
8 | ويندوز 8.1 برو | 4.0 جيجابايت |
8e | ويندوز 8.1 المؤسسة | 3.7 جيجابايت |
7e | ويندوز 7 المؤسسة | 3.0 جيجابايت |
ve | ويندوز فيستا المؤسسة | 3.0 جيجابايت |
xp | ويندوز إكس بي بروفيشنال | 0.6 جيجابايت |
2025 | ويندوز سيرفر 2025 | 5.0 جيجابايت |
2022 | ويندوز سيرفر 2022 | 4.7 جيجابايت |
2019 | ويندوز سيرفر 2019 | 5.3 جيجابايت |
2016 | ويندوز سيرفر 2016 | 6.5 جيجابايت |
2012 | ويندوز سيرفر 2012 | 4.3 جيجابايت |
2008 | ويندوز سيرفر 2008 | 3.0 جيجابايت |
2003 | ويندوز سيرفر 2003 | 0.6 جيجابايت |
نصيحة
لتثبيت إصدارات Windows ARM64، استخدم dockur/windows-arm.
لتغيير موقع التخزين، قم بتضمين رابط الربط التالي في ملف الإنشاء الخاص بك:
volumes :
- /var/win:/storage
استبدل مسار المثال /var/win
بمجلد التخزين المطلوب.
لتوسيع الحجم الافتراضي وهو 64 جيجابايت، قم بإضافة إعداد DISK_SIZE
إلى ملف الإنشاء الخاص بك وقم بتعيينه على السعة المفضلة لديك:
environment :
DISK_SIZE : " 256G "
نصيحة
يمكن استخدام هذا أيضًا لتغيير حجم القرص الموجود إلى سعة أكبر دون فقدان أي بيانات.
افتح "مستكشف الملفات" وانقر على قسم "الشبكة"، وسيظهر لك جهاز كمبيوتر يسمى host.lan
. انقر نقرًا مزدوجًا فوقه وسيظهر مجلدًا يسمى Data
، والذي يمكن ربطه بأي مجلد على مضيفك عبر ملف الإنشاء:
volumes :
- /home/user/example:/data
سيكون مجلد المثال /home/user/example
متاحًا باسم \host.lanData
.
نصيحة
يمكنك تعيين هذا المسار إلى حرف محرك أقراص في Windows، لتسهيل الوصول إليه.
لتنزيل صورة ISO غير مدعومة وغير قابلة للتحديد من القائمة أعلاه، حدد عنوان URL الخاص بـ ISO في متغير البيئة VERSION
، على سبيل المثال:
environment :
VERSION : " https://example.com/win.iso "
بدلاً من ذلك، يمكنك أيضًا تخطي التنزيل واستخدام ملف محلي بدلاً من ذلك، عن طريق ربطه في ملف الإنشاء الخاص بك بهذه الطريقة:
volumes :
- /home/user/example.iso:/custom.iso
استبدل مسار المثال /home/user/example.iso
باسم ملف ISO المطلوب، وسيتم تجاهل قيمة VERSION
في هذه الحالة.
لتشغيل البرنامج النصي الخاص بك بعد التثبيت، يمكنك إنشاء ملف يسمى install.bat
ووضعه في مجلد مع أي ملفات إضافية يحتاجها (البرنامج المراد تثبيته على سبيل المثال). ثم قم بربط هذا المجلد في ملف الإنشاء الخاص بك مثل هذا:
volumes :
- /home/user/example:/oem
سيتم نسخ مجلد المثال /home/user/example
إلى C:OEM
أثناء التثبيت وسيتم تنفيذ install.bat
الذي يحتوي عليه أثناء الخطوة الأخيرة.
من الأفضل الالتزام بالتثبيت التلقائي، لأنه يقوم بضبط الإعدادات المختلفة لمنع المشكلات الشائعة عند تشغيل Windows داخل بيئة افتراضية.
ومع ذلك، إذا كنت تصر على إجراء التثبيت يدويًا، فقم بإضافة متغير البيئة التالي إلى ملف الإنشاء الخاص بك:
environment :
MANUAL : " Y "
افتراضيًا، سيتم السماح للحاوية باستخدام مركزين لوحدة المعالجة المركزية (CPU) و4 جيجابايت من ذاكرة الوصول العشوائي (RAM) كحد أقصى.
إذا كنت تريد ضبط ذلك، يمكنك تحديد المبلغ المطلوب باستخدام متغيرات البيئة التالية:
environment :
RAM_SIZE : " 8G "
CPU_CORES : " 4 "
افتراضيًا، يتم إنشاء مستخدم يسمى Docker
أثناء التثبيت، بكلمة مرور فارغة.
إذا كنت تريد استخدام بيانات اعتماد مختلفة، فيمكنك تغييرها في ملف الإنشاء الخاص بك:
environment :
USERNAME : " bill "
PASSWORD : " gates "
افتراضيًا، سيتم تنزيل الإصدار الإنجليزي من Windows. لكن يمكنك إضافة متغير البيئة LANGUAGE
إلى ملف الإنشاء الخاص بك، من أجل تحديد لغة بديلة:
environment :
LANGUAGE : " French "
يمكنك الاختيار بين: ؟؟ عربي، ؟؟ البلغارية؟؟ صيني،؟؟ الكرواتية؟؟ التشيكية؟؟ الدنماركية،؟؟ هولندي، ؟؟ إنجليزي، ؟؟ الإستونية؟؟ الفنلندية،؟؟ فرنسي، ؟؟ الألمانية،؟؟ اليونانية،؟؟ العبرية،؟؟ المجرية؟؟ ايطالي؟؟ اليابانية،؟؟ الكورية؟؟ لاتفيا،؟؟ الليتوانية؟؟ النرويجية؟؟ البولندية،؟؟ البرتغالية،؟؟ الرومانية،؟؟ روسية؟؟ الصربية؟؟ السلوفاكية؟؟ السلوفينية؟؟ الاسبانية؟؟ السويدية؟؟ التايلاندية،؟؟ تركي و؟؟ الأوكرانية.
إذا كنت تريد استخدام تخطيط لوحة مفاتيح أو لغة غير افتراضية للغة المحددة، فيمكنك إضافة متغيرات KEYBOARD
و REGION
برمز الثقافة، مثل هذا:
environment :
REGION : " en-US "
KEYBOARD : " en-US "
ملحوظة
لن يكون لتغيير هذه القيم أي تأثير بعد إجراء التثبيت بالفعل. استخدم لوحة التحكم داخل Windows في هذه الحالة.
تم تصميم عارض الويب بشكل أساسي للاستخدام أثناء التثبيت، حيث أن جودة الصورة منخفضة، ولا يحتوي على صوت أو حافظة على سبيل المثال.
لذا، للحصول على تجربة أفضل، يمكنك الاتصال باستخدام أي عميل Microsoft Remote Desktop بعنوان IP الخاص بالحاوية، باستخدام اسم المستخدم Docker
ومن خلال ترك كلمة المرور فارغة.
يتوفر عميل RDP لنظام Android من متجر Play وواحد لنظام iOS في متجر Apple. بالنسبة لنظام التشغيل Linux، يمكنك استخدام FreeRDP وعلى نظام التشغيل Windows، فقط اكتب mstsc
في مربع البحث.
افتراضيًا، تستخدم الحاوية شبكة الجسر، التي تشارك عنوان 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
تأكد من تعديل هذه القيم لتتوافق مع شبكتك الفرعية المحلية.
بمجرد إنشاء الشبكة، قم بتغيير ملف الإنشاء الخاص بك ليبدو كما يلي:
services :
windows :
container_name : windows
....
networks :
vlan :
ipv4_address : 192.168.0.100
networks :
vlan :
external : true
من المزايا الإضافية لهذا الأسلوب أنك لن تضطر إلى إجراء أي تعيين للمنافذ بعد الآن، حيث سيتم كشف جميع المنافذ بشكل افتراضي.
مهم
لن يمكن الوصول إلى عنوان IP هذا من مضيف Docker نظرًا لتصميم macvlan، الذي لا يسمح بالاتصال بين الاثنين. إذا كان هذا مصدر قلق، فأنت بحاجة إلى إنشاء macvlan ثانٍ كحل بديل.
بعد تكوين الحاوية لـ macvlan، من الممكن أن يصبح Windows جزءًا من شبكتك المنزلية عن طريق طلب عنوان IP من جهاز التوجيه الخاص بك، تمامًا مثل الكمبيوتر الشخصي الحقيقي.
لتمكين هذا الوضع، أضف الأسطر التالية إلى ملف الإنشاء الخاص بك:
environment :
DHCP : " Y "
devices :
- /dev/vhost-net
device_cgroup_rules :
- ' c *:* rwm '
ملحوظة
في هذا الوضع، سيكون لكل من الحاوية وWindows عناوين IP المنفصلة الخاصة بهما.
لإنشاء أقراص إضافية، قم بتعديل ملف الإنشاء الخاص بك كما يلي:
environment :
DISK2_SIZE : " 32G "
DISK3_SIZE : " 64G "
volumes :
- /home/example:/storage2
- /mnt/data/example:/storage3
من الممكن تمرير أجهزة القرص مباشرةً عن طريق إضافتها إلى ملف الإنشاء الخاص بك بهذه الطريقة:
devices :
- /dev/sdb:/disk1
- /dev/sdc:/disk2
استخدم /disk1
إذا كنت تريد أن يصبح محرك الأقراص الرئيسي لديك (والذي سيتم تنسيقه أثناء التثبيت)، واستخدم /disk2
والإصدارات الأحدث لإضافتها كمحركات أقراص ثانوية (والتي ستبقى دون تغيير).
لتمرير جهاز USB، ابحث أولاً عن معرف البائع والمنتج عبر الأمر lsusb
، ثم قم بإضافتهما إلى ملف الإنشاء الخاص بك كما يلي:
environment :
ARGUMENTS : " -device usb-host,vendorid=0x1234,productid=0x1234 "
devices :
- /dev/bus/usb
مهم
إذا كان الجهاز عبارة عن محرك أقراص USB، فيرجى الانتظار حتى اكتمال التثبيت قبل توصيله. وإلا فقد يفشل التثبيت، حيث قد يتم إعادة ترتيب ترتيب الأقراص.
فقط نظامي التشغيل Linux وWindows 11 يدعمان المحاكاة الافتراضية لـ KVM، أما نظامي التشغيل macOS وWindows 10 فلا يدعمان ذلك للأسف.
يمكنك تشغيل الأوامر التالية في Linux للتحقق من نظامك:
sudo apt install cpu-checker
sudo kvm-ok
إذا تلقيت خطأ من kvm-ok
يشير إلى أنه لا يمكن استخدام KVM، فيرجى التحقق مما يلي:
تم تمكين ملحقات المحاكاة الافتراضية ( Intel VT-x
أو AMD SVM
) في BIOS الخاص بك.
لقد قمت بتمكين "المحاكاة الافتراضية المتداخلة" إذا كنت تقوم بتشغيل الحاوية داخل جهاز افتراضي.
أنت لا تستخدم مزودًا سحابيًا، حيث أن معظمهم لا يسمحون بالمحاكاة الافتراضية المتداخلة لخوادم VPS الخاصة بهم.
إذا لم تتلق أي خطأ من kvm-ok
ولكن الحاوية لا تزال تشكو من KVM، فيرجى التحقق مما إذا:
أنت لا تستخدم "Docker Desktop for Linux" لأنه لا يدعم KVM، وبدلاً من ذلك يمكنك استخدام Docker Engine مباشرة.
قد يكون من المفيد إضافة privileged: true
إلى ملف الإنشاء الخاص بك (أو sudo
إلى أمر docker run
الخاص بك)، لاستبعاد أي مشكلة تتعلق بالأذونات.
يمكنك استخدام dockur/macos لذلك. وهو يشترك في العديد من الميزات نفسها، باستثناء التثبيت التلقائي.
نعم، يحتوي هذا المشروع على كود مفتوح المصدر فقط ولا يوزع أي مواد محمية بحقوق الطبع والنشر. أي مفاتيح منتج موجودة في الكود هي مجرد عناصر نائبة عامة توفرها Microsoft لأغراض تجريبية. لذلك، بموجب جميع القوانين المعمول بها، سيتم اعتبار هذا المشروع قانونيًا.
أسماء المنتجات والشعارات والعلامات التجارية والعلامات التجارية الأخرى المشار إليها في هذا المشروع هي ملك لأصحاب العلامات التجارية الخاصة بهم. هذا المشروع ليس تابعًا أو مدعومًا أو معتمدًا من قبل شركة Microsoft Corporation.