Dockerコンテナ内のWindows。
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
Kubernetes経由:
kubectl apply -f kubernetes.yml
とてもシンプルです!手順は次のとおりです。
コンテナを起動し、Web ブラウザを使用してポート 8006 に接続します。
魔法が起こっている間、座ってリラックスしてください。インストール全体は完全に自動で実行されます。
デスクトップが表示されたら、Windows インストールを使用できるようになります。
新しいマシンをお楽しみください。このリポジトリにスターを付けることを忘れないでください。
デフォルトでは、Windows 11 がインストールされます。ただし、ダウンロードする別の Windows バージョンを指定するために、 VERSION
環境変数を作成ファイルに追加できます。
environment :
VERSION : " 11 "
以下の値から選択します。
価値 | バージョン | サイズ |
---|---|---|
11 | Windows 11 プロ | 5.4GB |
11l | Windows 11 LTSC | 4.2GB |
11e | Windows 11 エンタープライズ | 5.8GB |
10 | Windows 10 プロ | 5.7GB |
10l | Windows 10 LTSC | 4.6GB |
10e | Windows 10 エンタープライズ | 5.2GB |
8 | Windows 8.1 プロ | 4.0GB |
8e | Windows 8.1 エンタープライズ | 3.7GB |
7e | Windows 7 エンタープライズ | 3.0GB |
ve | Windows Vista エンタープライズ | 3.0GB |
xp | Windows XP プロフェッショナル | 0.6GB |
2025 | Windowsサーバー2025 | 5.0GB |
2022 | Windowsサーバー2022 | 4.7GB |
2019 | Windowsサーバー2019 | 5.3GB |
2016 | Windowsサーバー2016 | 6.5GB |
2012 | Windowsサーバー2012 | 4.3GB |
2008 | Windowsサーバー2008 | 3.0GB |
2003 | Windowsサーバー2003 | 0.6GB |
ヒント
ARM64 バージョンの Windows をインストールするには、dockur/windows-arm を使用します。
ストレージの場所を変更するには、構成ファイルに次のバインド マウントを含めます。
volumes :
- /var/win:/storage
例のパス/var/win
を、目的のストレージ フォルダーに置き換えます。
デフォルト サイズの 64 GB を拡張するには、作成ファイルにDISK_SIZE
設定を追加し、希望の容量に設定します。
environment :
DISK_SIZE : " 256G "
ヒント
これは、データを失うことなく、既存のディスクのサイズを変更してより大きな容量にすることもできます。
「エクスプローラー」を開いて「ネットワーク」セクションをクリックすると、 host.lan
というコンピューターが表示されます。これをダブルクリックすると、 Data
というフォルダーが表示されます。このフォルダーは、構成ファイルを介してホスト上の任意のフォルダーにバインドできます。
volumes :
- /home/user/example:/data
サンプル フォルダー/home/user/example
\host.lanData
として利用できます。
ヒント
簡単にアクセスできるように、このパスを Windows のドライブ文字にマップできます。
上記のリストから選択できないサポートされていない ISO イメージをダウンロードするには、次のようにVERSION
環境変数でその ISO の URL を指定します。
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 "
デフォルトでは、コンテナーは最大 2 つの CPU コアと 4 GB の 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 内のコントロール パネルを使用してください。
Web ビューアは、画質が低く、オーディオやクリップボードなどがないため、主にインストール中に使用することを目的としています。
したがって、エクスペリエンスを向上させるために、ユーザー名Docker
使用し、パスワードを空のままにして、任意の Microsoft リモート デスクトップ クライアントを使用してコンテナーの IP に接続できます。
Android 用の RDP クライアントは Play ストアから入手でき、iOS 用の RDP クライアントは Apple Store から入手できます。 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
このアプローチの追加の利点は、すべてのポートがデフォルトで公開されるため、ポート マッピングを実行する必要がなくなることです。
重要
macvlan の設計により、この IP アドレスは Docker ホストからアクセスできず、両者間の通信は許可されません。これが懸念される場合は、回避策として 2 番目の macvlan を作成する必要があります。
macvlan 用のコンテナーを構成した後、実際の PC と同様に、ルーターから IP を要求することで、Windows をホーム ネットワークの一部にすることができます。
このモードを有効にするには、作成ファイルに次の行を追加します。
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
メイン ドライブ (インストール中にフォーマットされる) にする場合は /disk1 を使用し、 /disk2
以降を使用してセカンダリ ドライブ (そのまま残ります) として追加します。
USB デバイスをパススルーするには、まずlsusb
コマンドでベンダー ID と製品 ID を検索し、次のように構成ファイルに追加します。
environment :
ARGUMENTS : " -device usb-host,vendorid=0x1234,productid=0x1234 "
devices :
- /dev/bus/usb
重要
デバイスが USB ディスク ドライブの場合は、インストールが完了するまで待ってから接続してください。そうしないと、ディスクの順序が並べ替えられる可能性があるため、インストールが失敗する可能性があります。
KVM 仮想化をサポートしているのは Linux と Windows 11 だけであり、残念ながら macOS と Windows 10 はサポートしていません。
Linux で次のコマンドを実行してシステムを確認できます。
sudo apt install cpu-checker
sudo kvm-ok
KVM が使用できないことを示すkvm-ok
からのエラーを受け取った場合は、次のことを確認してください。
仮想化拡張機能 ( Intel VT-x
またはAMD SVM
) が BIOS で有効になっている。
仮想マシン内でコンテナを実行している場合は、「ネストされた仮想化」が有効になっています。
クラウドプロバイダーのほとんどは VPS のネストされた仮想化を許可していないため、クラウドプロバイダーを使用していません。
kvm-ok
からエラーが表示されないにもかかわらず、コンテナーが KVM に関する問題を解決しない場合は、次のことを確認してください。
「Docker Desktop for Linux」は KVM をサポートしていないため使用せず、代わりに Docker エンジンを直接使用してください。
権限の問題を除外するには、compose ファイル (またはdocker run
コマンドにsudo
) にprivileged: true
を追加すると便利です。
それにはdockur/macosを使用できます。自動インストールを除いて、同じ機能の多くを共有します。
はい、このプロジェクトにはオープンソース コードのみが含まれており、著作権で保護された素材は配布されません。コード内にあるプロダクト キーは、Microsoft が試用目的で提供する汎用のプレースホルダーにすぎません。したがって、適用されるすべての法律の下で、このプロジェクトは合法とみなされます。
このプロジェクト内で言及されている製品名、ロゴ、ブランド、およびその他の商標は、それぞれの商標所有者の財産です。このプロジェクトは Microsoft Corporation と提携、スポンサー、または承認されていません。