Docker Desktopは不要!Windows11+WSL2で構築する軽量ローカル開発環境ガイド

Windows11とWSL2で構築する軽量ローカル開発環境ガイドのアイキャッチ画像。ノートパソコンの上にコンテナが積み上がるイラスト。 インフラ・サーバー

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リソースの消費も最小限に抑えられます。

今回の開発環境の全体構成

全体構成のレイヤー構造は以下の通りです。

  1. Windows 11(ホストOS)
  2. WSL2 / Ubuntu(Linux環境)
  3. Docker Engine(コンテナ実行環境)
  4. VS Code(エディタ + Remote – WSL拡張機能)

Windows上で直接コンテナを動かすのではなく、WSL2のUbuntu内部でDocker Engineを動作させ、Windows側のVS Codeから拡張機能を介して接続する設計です。

​Windows11上のWSL2がDocker EngineとVS Codeで連携していることを示す図

3. WSL2+Direct Dockerを使うメリット・デメリット

Docker Desktopを利用する場合と、WSL2内に直接Docker Engineを構築する場合の違いをまとめました。

Docker DesktopとWSL2直接構築の機能比較
比較項目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 OS

Step 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/null

2. 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-plugin

3. 一般ユーザーへの権限付与

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拡張機能の導入

  1. Windows側でVS Codeを起動します。
  2. 拡張機能マーケットプレイスで Remote Development を検索してインストールします。
    • リモート開発に必要な4つの拡張機能がセットになったパッケージです。これを入れると「WSL」も自動的に一緒にインストールされます。
    • リモート開発パックに含まれる4つの拡張機能:
      • WSL: WSL環境への接続
      • Dev Containers: Dockerコンテナ内への接続
      • Remote – SSH: 外部サーバーへのSSH接続
      • Remote – Tunnels: トンネル経由での接続

自分はVScodeを使う上で、この拡張機能を使ってWindowsローカル環境、WSL2を使ったDocker環境、VPSを使ったリモート環境を使い分けることで快適に開発環境を整えています。

7. 開発するフォルダの選び方

最適なディレクトリー構造のイメージ

ユーザー名のホームディレクトリ 直下に projectsdev といった作業用フォルダを作って管理するのが一般的でスマートです。

\\wsl.localhost\Ubuntu\home\ユーザー名\
 └─ projects\
     ├─ my-app\        ← ここをVS Codeで開いて開発
     └─ sample-docker\

WSL2のフォルダはWindowsのエクスプローラーから見れる?

Windows 11の場合、エクスプローラーの左側にあるツリーメニュー(ナビゲーションウインドウ)を下へスクロールすると、「Linux」(ペンギンのアイコン)という項目が用意されています。ここをクリックしてもWSL内のファイルシステムへアクセスできます。

エクスプローラーで見るWSL2の中のディレクトリ構成

⚠️ 注意点(ファイル操作のコツ)

  • 場所の確認: 開発を行うプロジェクトファイルは、\\wsl.localhost\Ubuntu\home\ユーザー名\…(Linuxのホームディレクトリ配下)に置くのが高速動作のポイントです。
    Windows側(C:\Users\…)のファイルをWSLから参照すると、ファイルアクセスの速度が大幅に低下します。
  • アクセス権限: Windows側からWSL内の設定ファイル(/etc/… など)を直接書き換えると、パーミッション(権限)がおかしくなることがあるため、コードやプロジェクト成果物以外のシステムファイルの編集はターミナル上で行うのが安全です。

8. まとめ

Docker Desktopを使用しなくても、WSL2 + Docker Engine の組み合わせで、完全無料・軽量かつ商用利用可能なローカル開発環境を構築できます。

一度この環境をセットアップしておけば、本番のLinuxサーバーに近い感覚で効率的な開発を進めることが可能です。PCのリソース不足やライセンス規約に悩んでいる方は、ぜひ試してみてください。

コメント