0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2 (Ubuntu 24.04) に Docker CE + Docker Compose を導入する

0
Posted at

WSL2 上の Ubuntu 24.04 に、公式 apt リポジトリから Docker Engine (Docker CE) と Docker Compose (V2) を導入する手順を整理した。Docker Desktop を使わず、WSL 内で完結する構成となっている。

ディストリビューション同梱の非公式パッケージではなく公式リポジトリから入れるため、以降のアップグレードも通常の apt upgrade を実行すれば良い。

systemd の有効化を確認する

Docker Engine はデーモンの管理に systemd を利用する。近年の WSL では Ubuntu 24.04 は既定で systemd が有効になっているが、念のため確認しておく。

# systemd が PID 1 かどうか確認
ps -p 1 -o comm=
# → "systemd" と表示されれば有効

systemd 以外(init など)が表示される場合は、以下で有効化する。

sudo tee /etc/wsl.conf > /dev/null <<'EOF'
[boot]
systemd=true
EOF

編集後は Windows 側の PowerShell から WSL を再起動する。

wsl --shutdown

再度 Ubuntu を起動し、ps -p 1 -o comm=systemd になっていれば OK

競合する古いパッケージを削除する

ディストリビューション同梱の非公式パッケージが残っていると公式版と競合するため、先に削除する。

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)

Docker 公式 apt リポジトリを設定する

GPG 鍵の登録とリポジトリ追加を行う。

# 必要ツールと Docker の公式 GPG 鍵を登録
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# apt ソースを追加(Ubuntu のコードネーム・アーキテクチャを自動判定)
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

Docker Engine と Compose プラグインをインストールする

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

各パッケージの役割は以下のとおり。

  • docker-ce / docker-ce-cli: Docker Engine 本体と CLI
  • containerd.io: コンテナランタイム
  • docker-buildx-plugin: docker buildx(ビルド拡張)
  • docker-compose-plugin: docker compose(Compose V2)

Docker デーモンを起動・確認する

sudo systemctl enable --now docker    # 自動起動を有効化しつつ起動
systemctl status docker               # 状態確認(q で終了)

非 root ユーザーで docker を実行できるようにする

毎回 sudo を付けずに使うため、自分を docker グループに追加する。

sudo usermod -aG docker $USER

反映するには一度ログアウト/再ログインするか、Windows 側の PowerShell で wsl --shutdown してから再起動する。

現在のシェルだけ即時反映したいなら以下でもよい。

newgrp docker

動作確認

# バージョン確認
docker --version
docker compose version

# 動作テスト(テストイメージを取得して実行)
docker run --rm hello-world

Hello from Docker! が表示されれば、Engine・ランタイム・ネットワークが正しく動いている。

Docker Compose の確認確認は以下の通り。

mkdir -p /tmp/compose-test && cd /tmp/compose-test
cat > compose.yaml <<'EOF'
services:
  hello:
    image: hello-world
EOF
docker compose up
docker compose down

アップデード / アンインストール

apt でアップデートができる。

sudo apt update
sudo apt upgrade

アンインストールは以下の通り。

# パッケージ削除
sudo apt purge docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# データ削除(イメージ・コンテナ・ボリューム等がすべて消える)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# リポジトリ設定・鍵の削除
sudo rm /etc/apt/sources.list.d/docker.sources
sudo rm /etc/apt/keyrings/docker.asc

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?