| この記事の要点 |
|
Linux / Windows コンテナの違い
| 項目 | Linux コンテナ | Windows コンテナ |
|---|---|---|
| ベースイメージ | alpine / ubuntu / debian 等 | mcr.microsoft.com/windows/* 系 |
| 動かせるアプリ | nginx / mysql / node / php / python 等 | IIS / .NET Framework / SQL Server / PowerShell |
| イメージサイズ | 数 MB 〜 数百 MB | 数 GB(windows/servercore は 5GB 超) |
| backend | WSL2 / Hyper-V どちらも可 | Hyper-V のみ |
| 用途 | 一般的な Web / アプリ | Windows 専用機能を含むエンタープライズ |
| 共有可能性 | Linux / Mac でも動く | Windows でしか動かない |
切替方法(GUI)
- タスクトレイの Docker アイコン(クジラ)を右クリック
- 表示されるメニューで現在のモードを確認:
- Linux モードなら「Switch to Windows containers...」
- Windows モードなら「Switch to Linux containers...」
- クリックすると Docker Desktop が再起動(30 秒〜1 分)
- 切替完了後、起動中のコンテナは停止される
切替方法(CLI)
# PowerShell を管理者で起動
# Docker Desktop のインストールディレクトリへ
cd "C:\Program Files\Docker\Docker"
# Windows コンテナへ切替
.\DockerCli.exe -SwitchDaemon
# 確認
docker version
# Server: Docker Desktop
# Engine:
# ...
# OS/Arch: windows/amd64 ← これが windows / linux
# Linux に戻す場合も同じコマンド(トグル動作)
.\DockerCli.exe -SwitchDaemon
事前準備: Windows コンテナを使うための要件
| 要件 | 詳細 |
|---|---|
| OS | Windows 10/11 Pro/Enterprise/Education(Home は不可)または Windows Server 2016+ |
| Hyper-V | 有効化必須(コントロールパネル → Windows の機能) |
| コンテナ機能 | 「コンテナー」を Windows の機能から有効化 |
| 仮想化 | BIOS で VT-x / AMD-V を有効化 |
| Docker Desktop | 4.0+ 推奨 |
# PowerShell で Windows 機能を有効化(管理者)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName Containers -All
# 再起動
Restart-Computer
Windows コンテナの動作確認
# 切替後、Windows コンテナで hello-world
docker run mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd /c echo Hello from Windows container
# IIS を動かす
docker run -d -p 8080:80 mcr.microsoft.com/windows/servercore/iis
# → http://localhost:8080 で IIS デフォルトページ
# .NET Framework アプリ
docker run mcr.microsoft.com/dotnet/framework/sdk:4.8 powershell Get-Host
Linux に戻すケース(よくある)
Windows コンテナで作業した後、通常の Web 開発に戻るときは Linux モードへ戻します:
# 確認
docker version | findstr OS/Arch
# Linux に戻す
& "C:\Program Files\Docker\Docker\DockerCli.exe" -SwitchDaemon
# 確認: linux/amd64 になっていれば OK
docker version
docker run hello-world
WSL2 backend と Hyper-V backend
| backend | Linux コンテナ | Windows コンテナ | パフォーマンス |
|---|---|---|---|
| WSL2 | ○(推奨) | × | 速い、軽い |
| Hyper-V | ○ | ○ | WSL2 より遅い |
Docker Desktop 設定:
- Settings → General → 「Use the WSL 2 based engine」のチェック
- WSL2 backend で Windows コンテナを使いたい場合は、いったんチェックを外す(再起動)
よくあるトラブル
| 症状 | 原因 | 対処 |
|---|---|---|
| 切替メニューが出ない | Hyper-V / コンテナ機能未有効 | Windows の機能で有効化、再起動 |
| 切替で 5 分以上止まる | 初回ダウンロード中(数 GB) | 気長に待つ、ログを %LOCALAPPDATA%\Docker\log で確認 |
no matching manifest エラー | Linux イメージを Windows モードで pull | 正しいモードへ切替 |
| Windows コンテナで遅い | イメージサイズが大きい | nanoserver ベースを選ぶ(servercore より軽い) |
FAQ
Q: Linux と Windows コンテナを同時に動かしたい
A: 1 つの Docker Desktop では不可。Docker Desktop と Linux 用の別 Docker (WSL2 内で docker-ce 直接) を分けて運用するか、それぞれを別ホストにすることが必要です。
Q: Windows 10 Home でも Windows コンテナを使える?
A: Hyper-V が Home エディションで使えないため 不可。Pro / Enterprise / Education にアップグレードが必要です。
Q: docker compose up のときコンテナの種類は?
A: compose ファイルの image: 行で判断。nginx:alpine なら Linux、mcr.microsoft.com/windows/* なら Windows。1 つの compose で混在不可。
関連項目
- Docker Desktop: 公式ダウンロード
- Windows コンテナ イメージ一覧:
mcr.microsoft.com - WSL2 セットアップ:
wsl --install
📸 参考画像
※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

子ページ
子ページはありません
同階層のページ
- インストール方法(Windows)
- イメージの検索 / 取得 / 取得済み一覧の確認
- use windows containers instead of linux containers docker
- バージョンの確認
- エラー一覧
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09