本記事では、WSL2(Windows Subsystem for Linux 2)がインストールされたWindows 11に、Docker DesktopをインストールしてWSL2との連携を設定する方法を解説します。
また、GUIとCLI両方におけるDockerの基本操作や、WSL2特有のDocker Desktopアーキテクチャについても紹介します。
前提条件
- Windows11
- WSL2でデフォルトのUbuntuディストリビューションをインストール済み。
もしWSL2が未設定の場合、「WSL2のWindows11へのインストール、起動とシャットダウン」で詳しく解説しています。
Docker Desktopのインストールと設定
Windows版Docker DesktopをDocker公式サイトからダウンロードします。
インストーラを起動し、Configuration画面で「OK」をクリック。

インストールが開始されます。

インストール完了後、「Close and restart」ボタンをクリックしてWindowsを再起動します。

PC再起動後、Docker Desktopが自動で起動します。利用規約(Service Agreement)が表示されるので「Accept」をクリックします。

Dockerアカウント作成・ログイン画面が表示されますが、必須ではないので「Skip」ボタンをクリックします。

Docker Desktopのコンテナ管理画面が表示されたらインストール成功です。

WSL2との連携設定
Docker Desktopの右上にある歯車アイコン(Settings)をクリックし、「General」メニューを選択します。画面をスクロールして「Use the WSL 2 based engine」がオンになっているか確認します。この設定により、従来のHyper-Vによる重厚な仮想マシンではなく、WSL2の軽量なLinuxカーネル上でコンテナが動作するようになります。もしオフならチェックして「Apply」ボタンをクリックします。

次に、同じSettingsで「Resources」メニューより「WSL連携」タブをクリックし、「Enable integration with my default WSL destro」がオンになっていることを確認します。オフになっている場合は、チェックして「Apply」ボタンをクリックします。

これで、WSL2のデフォルトディストリビューション内からdockerコマンドが使えるようになります。
デフォルトディストリビューションはPowerShellでwsl -l -vコマンドを実行して「*」が表示されているディストリビューションです。

もしデフォルト以外のディストリビューション(archlinuxなど)で個別に有効にしたい場合は、下のリストにあるスイッチをオンにします。
動作確認
PowerShellまたはWSL2(Ubuntu)を開き、以下のコマンドを入力してください。
docker --version
# 出力例: Docker version 29.3.1, build c2be9cc
試しにテスト用のコンテナを実行してみます。
docker run hello-world
イメージがダウンロードされ、「Hello from Docker!」と表示されれば成功です。
WSL2でのDocker Desktop基本操作
Docker Desktopの強みは、CLI(PowerShell/WSL上のBash)とGUI(Docker Desktop画面)どちらからでもDockerの操作が可能な点にあります。
イメージ一覧表示
- CLI:
docker images - GUI: Imagesメニューをクリック。

イメージから新規コンテナ生成・実行
- CLI:
docker run <イメージ名> - GUI: Imagesメニューから、コンテナ作成元イメージの「Run」ボタンをクリック。

イメージ削除
- CLI:
docker rmi <イメージID> - GUI: Imagesメニューから、削除したいイメージのゴミ箱アイコンをクリック。

コンテナ一覧表示
- CLI:
docker ps -a - GUI: Containersメニューをクリック。

既存コンテナ再起動
- CLI:
docker start <コンテナID> - GUI: Containersメニューから「Start」ボタンをクリック。

コンテナ停止
- CLI:
docker stop <コンテナID> - GUI: Containersメニューから実行中コンテナの「Stop」ストップボタンをクリック。

コンテナ削除
- CLI:
docker rm <コンテナID> - GUI: Containersメニューから削除したいコンテナのゴミ箱アイコンをクリック。

ボリューム作成
- CLI:
docker volume create <volume名> - GUI: Volumesメニューから「Create a volume」をクリック。

ボリューム一覧
- CLI:
docker volume ls - GUI: Volumesメニューをクリック。

ボリューム削除
- CLI:
docker volume rm <ボリューム名> - GUI: Volumesメニューから削除したいボリュームのゴミ箱アイコンをクリック。

Docker Desktopのアーキテクチャ
WSL2環境のDocker Desktopは、クライアントとサーバが別々のWSLディストリビューションで実行されるという、少しユニークな「クライアント・サーバ」構成をとっています。
Docker Desktopをインストールすると、WSL上にdocker-desktopという特殊なディストリビューションが自動作成されます。
私たちが普段使うUbuntuなどのディストリビューションには、Dockerの「本体」は入っていません。そこにあるのは操作用のクライアント(CLI)だけで、命令を送るとdocker-desktop内のエンジンが実務をこなす仕組みになっています。
| 役割 | WSLディストリビューション | インストールツール |
| クライアント | 通常のWSLディストリビューション | docker cli (コマンドライン) |
| サーバ | docker-desktop | dockerd, containerd |
Docker Desktopアーキテクチャ図:
- Windowsホスト
- WSL2仮想マシン
- docker-desktopディストリビューション
- コンテナ1
- コンテナ2
- …
- コンテナn
- Ubuntuディストリビューション
- …
- 別ディストリビューション
- docker-desktopディストリビューション
- WSL2仮想マシン
アーキテクチャ検証
Docker Desktopのアーキテクチャを実際に検証するため、持続的に動作するnginxコンテナをインストールしてみます。
Docker Hubメニューで「nginx」を検索し、Official buildをクリックします。

nginxの詳細ページで「Run」ボタンをクリックすると、nginxイメージがダウンロードされコンテナが起動します。

PowerShellで以下のコマンドを実行すると、nginxコンテナが実行中であることがわかります。
docker ps
このコンテナが実行されているディストリビューションを調べるため、PowerShellでディストリビューション一覧を表示します。
wsl -l -v
デフォルトディストリビューションのUbuntuと共にdocker-desktopというディストリビューションが実行されていることがわかります。

次に、無理やりdocker-desktopディストリビューションの中に入って、プロセスを確認してみます。
wsl -d docker-desktop
以下のコマンドを実行すると、docker-desktop上でDockerのデーモン(dockerd、containerd)や、nginxコンテナプロセスが実行されていることを確認できます。
ps aux | grep -E 'nginx|dockerd|containerd'

別ディストリビューションからの共有
このアーキテクチャの最大のメリットは、複数のLinuxディストリビューションから同じDocker環境を共有できることです。
例えば、新しくArch Linuxをインストールしても、Settingsの「WSL integration」でArch Linuxをオンにするだけで、Ubuntuで作成したコンテナやイメージにArch Linux側からもそのままアクセスできるようになります。
検証のため、archlinuxをインストールします。
wsl --install -d archlinux
Settings -> Resources -> WSL integrationタブの「Enable integration with additional distros」セクションでarchlinuxのチェックボックスをOnにし「Apply」ボタンをクリックします。これで、archlinux上でdockerコマンドが使えるようになります。

archlinuxにログインします。
wsl -d archlinux
docker psコマンドを実行すると、nginxコンテナが表示されます。

まとめ
WSL2環境でのDocker Desktopには、以下のメリットがあります。
- 導入が簡単: 複雑なLinux側の設定なしで、インストーラだけで環境が整う。
- 柔軟な操作: GUIで全体の状況を把握し、CLIで細かな作業を行うといった使い分けができる。
- リソースの効率化: WSLディストリビューション間でコンテナが共有できる。
まずはGUIでコンテナの動きを眺めつつ、徐々にCLI操作に慣れていくのが、Docker習得への近道です。ぜひこの便利な環境を使いこなしてください!
