WindowsでWeb開発やアプリケーション開発を進める際、コンテナ環境の構築はほぼ必須となっています。しかし、「PCの動きが重くなる」「Docker Desktopの有料化ライセンスが気になる」といった悩みを抱えている方も多いのではないでしょうか。
この記事では、Docker Desktopを使用せず、WSL2上に直接Docker Engineを導入することで、完全無料かつ軽量な開発環境を構築する手順を詳しく解説します。
1. はじめに
Windowsで本格的な開発環境を作ろうとすると、動作の重さやライセンス体系の複雑さに直面することがあります。特に企業での利用や副業開発において、ライセンス規約の遵守は重要なポイントです。
本記事で紹介する構成を採用すれば、ライセンス制限を気にする必要がなくなり、システムリソースを最小限に抑えた快適な開発環境が手に入ります。
WSL2+Dockerの構成を選んだ理由
以前はDocker Desktopを使っていましたが、メモリ消費量が大きくPCの動きが重くなったり、内部ストレージを圧迫するのが問題でした。そこでWSL2内に直接Dockerを構築したところ、動作が格段に軽くなり、VS Codeとの連携も非常に快適になりました。
2. WSL2の概要と全体構成
WSL2(Windows Subsystem for Linux 2)とは?
WSL2は、Windows 11上で本物のLinuxカーネルを直接動作させるMicrosoftの標準技術です。従来の仮想マシンに比べて起動が非常に速く、メモリやCPUリソースの消費も最小限に抑えられます。
今回の開発環境の全体構成
全体構成のレイヤー構造は以下の通りです。
- Windows 11(ホストOS)
- WSL2 / Ubuntu(Linux環境)
- Docker Engine(コンテナ実行環境)
- VS Code(エディタ + Remote – WSL拡張機能)
Windows上で直接コンテナを動かすのではなく、WSL2のUbuntu内部でDocker Engineを動作させ、Windows側のVS Codeから拡張機能を介して接続する設計です。

3. WSL2+Direct Dockerを使うメリット・デメリット
Docker Desktopを利用する場合と、WSL2内に直接Docker Engineを構築する場合の違いをまとめました。

| 比較項目 | Docker Desktop利用 | WSL2 Direct Docker(本手順) |
| ライセンス | 企業の規模によって有料 | 完全無料(商用利用OK) |
| 動作の軽さ・メモリ | バックグラウンド処理で重くなりやすい | バックグラウンドがシンプルで軽量 |
| セットアップ | インストーラーを実行するのみ | コマンド操作が必要(やや中級者向け) |
| GUI操作 | 専用Dashboardあり | なし(VS Code拡張やCLIで操作) |
メリット
- ライセンスフリー: 商用利用の制約を受けず、安心して利用可能。
- 軽量動作: 不要なGUIプロセスが存在しないため、メモリ消費を低減。
- Linux標準への精通: 本番環境(Linuxサーバー)に近いCLI操作に慣れることができる。
デメリット
- 初期構築の手間: ターミナルでのコマンド実行が必要。
- GUI非搭載: コンテナ一覧をマウス操作で管理する画面は標準では存在しない(VS CodeのDocker拡張機能で代替可能)。
4. 【実践】WSL2環境の構築ステップ
ここからは、実際の構築手順を解説します。
Step 1: WSL2の有効化とUbuntuの導入
PowerShellを管理者権限で開き、以下のコマンドを実行します。
wsl --install現在のWindows 11で wsl –install を実行すると、デフォルトで自動的に Ubuntu がインストールされます。
もちろん、Ubuntu以外のLinuxディストリビューションを選ぶことも可能です。
他のディストリビューションをインストールする方法
事前に利用可能なLinuxの一覧を確認し、好きなものを指定して導入できます。
Step 1: インストール可能なリストを確認する
PowerShellで以下のコマンドを実行します。
wsl --list --online実行結果の例:
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Roll-Release
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4
AlmaLinux-9 AlmaLinux 9 OSStep 2: ディストリビューションを指定してインストールする
-d オプションの後ろに、リストに表示された NAME を指定して実行します。
- Debian を入れたい場合:wsl –install -d Debian
- AlmaLinux を入れたい場合:wsl –install -d AlmaLinux-9
- 特定のバージョンのUbuntuを入れたい場合:wsl –install -d Ubuntu-24.04
補足:複数のディストリビューションを同時に使うことも可能
WSL2では、Ubuntuを入れつつ同時にDebianやAlmaLinuxを追加でインストールして、用途に応じて使い分けることも簡単にできます。
コマンドの完了後、PCを再起動します。再起動後にUbuntuの初期セットアップ画面が表示されるため、任意のユーザー名とパスワードを設定してください。
Step 2: systemd の有効化設定
Dockerサービスを自動起動させるため、Ubuntu内の設定ファイルを編集して systemd を有効化します。
Ubuntuのターミナルで以下のコマンドを実行し、設定ファイルを開きます。
sudo nano /etc/wsl.confファイル内に以下の内容を記述して保存します(Ctrl+O -> Enter -> Ctrl+X)。
[boot]
systemd=true設定を反映させるため、Windows側のPowerShellに戻り、WSL2を再起動します。
wsl --shutdown再度Ubuntuを起動すると、systemd が有効化された状態で立ち上がります。
5. 【実践】Docker Engineのインストール手順
Ubuntu公式のリポジトリからDocker Engineをインストールします。
1. 古いパッケージの削除とリポジトリの設定
ターミナルで以下を順番に実行し、必要なパッケージの取得準備を行います。
# 古いパッケージの削除
sudo apt-get remove docker docker-engine docker.io containerd runc
# 必要なパッケージのインストール
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
# Docker公式GPG鍵の追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# リポジトリの設定
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null2. Docker Engine のインストール
リポジトリを更新し、Docker Engine本体をインストールします。
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin3. 一般ユーザーへの権限付与
sudo なしで docker コマンドを実行できるように、現在のユーザーを docker グループに追加します。
sudo usermod -aG docker $USER設定変更を適用するため、一度ターミナルを終了して再起動するか、exec su – $USER を実行してください。
4. 動作確認
以下のテストコマンドを実行します。
docker run hello-world画面に Hello from Docker! と表示されれば、Docker Engineの構築は完了です。
6. VS Codeと連携してローカル開発を始める
構築したWSL2環境は、Visual Studio Code(VS Code)と連携させることで真価を発揮します。
WSL拡張機能の導入
- Windows側でVS Codeを起動します。
- 拡張機能マーケットプレイスで Remote Development を検索してインストールします。
- リモート開発に必要な4つの拡張機能がセットになったパッケージです。これを入れると「WSL」も自動的に一緒にインストールされます。
- リモート開発パックに含まれる4つの拡張機能:
- WSL: WSL環境への接続
- Dev Containers: Dockerコンテナ内への接続
- Remote – SSH: 外部サーバーへのSSH接続
- Remote – Tunnels: トンネル経由での接続
自分はVScodeを使う上で、この拡張機能を使ってWindowsローカル環境、WSL2を使ったDocker環境、VPSを使ったリモート環境を使い分けることで快適に開発環境を整えています。
7. 開発するフォルダの選び方
最適なディレクトリー構造のイメージ
ユーザー名のホームディレクトリ 直下に projects や dev といった作業用フォルダを作って管理するのが一般的でスマートです。
\\wsl.localhost\Ubuntu\home\ユーザー名\
└─ projects\
├─ my-app\ ← ここをVS Codeで開いて開発
└─ sample-docker\WSL2のフォルダはWindowsのエクスプローラーから見れる?
Windows 11の場合、エクスプローラーの左側にあるツリーメニュー(ナビゲーションウインドウ)を下へスクロールすると、「Linux」(ペンギンのアイコン)という項目が用意されています。ここをクリックしてもWSL内のファイルシステムへアクセスできます。

⚠️ 注意点(ファイル操作のコツ)
- 場所の確認: 開発を行うプロジェクトファイルは、\\wsl.localhost\Ubuntu\home\ユーザー名\…(Linuxのホームディレクトリ配下)に置くのが高速動作のポイントです。
Windows側(C:\Users\…)のファイルをWSLから参照すると、ファイルアクセスの速度が大幅に低下します。- アクセス権限: Windows側からWSL内の設定ファイル(/etc/… など)を直接書き換えると、パーミッション(権限)がおかしくなることがあるため、コードやプロジェクト成果物以外のシステムファイルの編集はターミナル上で行うのが安全です。
8. まとめ
Docker Desktopを使用しなくても、WSL2 + Docker Engine の組み合わせで、完全無料・軽量かつ商用利用可能なローカル開発環境を構築できます。
一度この環境をセットアップしておけば、本番のLinuxサーバーに近い感覚で効率的な開発を進めることが可能です。PCのリソース不足やライセンス規約に悩んでいる方は、ぜひ試してみてください。

コメント