2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows11上のWSL2にDocker Engineをインストールした

2
Last updated at Posted at 2026-07-15

FastAPIの勉強の続き。
SQLModelを使ってDBとやりとりしたい。
DockerでPostgreSQLコンテナを起動しようとしたところ起動しない!

docker compose up
docker: 'compose' is not a docker command.
See 'docker --help'

Docker Engine は入っているけど docker compose が入っていない状態…?

Copilotに聞いてみると「Docker Desktop」を入れるようにおすすめされる。
しかし、Docker Desktopは商用利用は有料。商用利用でも無料で使えるほうが嬉しい私は、

Copilotに 「Docker Desktopは使いたくない。WSL上にDocker(Docker CE)をインストールするには?」 と尋ねました。
Copilotの回答の手順の通りにやったところあっさり成功👏

実は、そもそもCopilotに 「WSL上にdocker composeをインストールするには?」 と聞くべきところを間違えて尋ねていました。
大は小を兼ねるということで(?)
とりあえず未来の自分のためにメモしておきます。

必要なもの

  • WSL2
  • WSL2のsystemdの有効化
  • Docker Engine(Dockerの本体)
  • docker-compose-plugin(複数コンテナを管理する拡張機能)

WSL(Ubuntu)に Docker CE をインストールする手順

01 WSL が WSL2 で動いているか確認

WSL2 でないと Docker Engine が動かないため、最初に確認する。

PowerShell で実行

wsl -l -v を実行
Ubuntu が Version 2 になっていることを確認

Version 1 の場合は
wsl --set-version Ubuntu 2 で変換

02 WSL の systemd を有効化

Docker Engine は systemd が必要なので、WSL の設定を変更する。

WSL Ubuntu ターミナルで実行

sudo nano /etc/wsl.confg

開いたファイルに以下を追記して保存(Ctrl+O -> Enter -> Ctrl+X)します。

[boot]
systemd=true

WSL を再起動

2026/07/18追記
以降の手順
・03 Docker CE の公式リポジトリを追加
・04 Docker Engine をインストール
を実行しなくても
Docker公式が自動インストールスクリプトを提供していました。
下記のコマンドを実行して手順03と04はスキップしてください。
curl [https://get.docker.com](https://get.docker.com) | sh
参考: https://docs.docker.jp/linux/step_one.html

03 Docker CE の公式リポジトリを追加

Ubuntu に Docker Engine をインストールするための準備。

WSL Ubuntu ターミナルで実行

# パッケージリストを更新(最新のソフトがあるか確認)
sudo apt update

# HTTPS経由でリポジトリを取得するための暗号化通信に必要なツール(証明書など)をインストール
sudo apt install ca-certificates curl gnupg

# Docker公式のGPG鍵(安全な通信のための鍵)を保存するディレクトリを作成
# -m 0755 でアクセス権限(パーミッション)を適切に設定
sudo install -m 0755 -d /etc/apt/keyrings

# Docker公式のGPG鍵をダウンロードし、指定フォルダに保存
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null

# Ubuntuのシステム情報(バージョン名など)を環境変数として読み込む
. /etc/os-release

# Docker公式のパッケージリポジトリ(ダウンロード元)のURLをリストファイルに書き込む
# $VERSION_CODENAME にはUbuntuのバージョン名(例: noble, jammy など)が自動で入る
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $VERSION_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

04 Docker Engine をインストール

WSL 上に純粋な Docker CE をインストールする。

WSL Ubuntu ターミナルで実行

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

インストール後、
sudo systemctl enable --now docker
で起動

enable : WSL(Ubuntu)が起動したときに、自動でDockerが立ち上がるように予約される。
ターミナルには、自動起動用のリンク(シンボリックリンク)を作成した旨のメッセージが表示される。

05 sudo なしで Docker を使えるようにする

毎回 sudo を付けるのは面倒なので、ユーザーを docker グループに追加する。

WSL Ubuntu ターミナルで実行

sudo usermod -aG docker $USER

WSL を再起動
再ログイン後、以下のコマンドが sudo なしで動くことを確認。

WSL Ubuntu ターミナルで実行

# バージョンが表示されるか確認
docker --version

# dockerコマンドがエラーなく動くか確認
docker ps

# sudoなしでコンテナが起動できるか最終確認
docker run hello-world

06 docker-compose が使えるか確認する

Docker Desktop なしでも compose が使えるようになる。

WSL Ubuntu ターミナルで実行

docker compose version でバージョンが表示されれば OK

動作確認(おまけ)

docker composをファイルからではなく、標準入力(画面から渡されたテキスト)をYAMLとして読み込んで実行する。hello-worldイメージを使って一時的にコンテナを起動し、動作確認メッセージが表示されたら自動で終了する。

WSL Ubuntu ターミナルで実行

echo "services:
  hello:
    image: hello-world" | docker compose -f - up
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?