🐅

Ubuntu22.04(WSL2)にDockerをインストール

2022/08/25に公開

Introduction

準備

WSL2にUbuntu 22.04がインストールされているものとします。インストールがまだの場合は、下記の記事を参考にしてください。

手順

GPGキー追加

公式マニュアルにならい、まず、Dockerの公式GPGキーを追加します。

Ubuntuコンソール
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

aptリポジトリへの追加

Dockerリポジトリをインストール用ソースに追加します(公式マニュアルと異なりUbuntuのバージョンは"jammy" (Ubuntu 22.04)に固定しています)。

Ubuntuコンソール
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list

aptコマンドでDocker Engineをインストールします。

Ubuntuコンソール
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

インストール確認

Docker Engineが正常にインストールできたかどうか、以下のコマンドで確認できます。

Ubuntuコンソール
$ sudo docker run hello-world
...()...
Hello from Docker!
This message shows that your installation appears to be working correctly.
...()...

dockerコマンドをsudo無しで使用できるようにする

sudoを使わないでもDockerにアクセスできるように、管理ユーザをdockerグループに追加します。

Ubuntuコンソール
$ sudo usermod -aG docker $USER
$ newgrp docker

今度はsudoを使わないで、hello-worldコンテナを動作させてみます。

Ubuntuコンソール
$ docker run hello-world
...()...
Hello from Docker!
This message shows that your installation appears to be working correctly.
...()...

上記のようにエラーが表示されなければokです。

containerdのconfigのversionを2にする

containerdのconfigについて、version=1の記述方法はdeprecatedになっていますので、version=2に変更します。

Ubuntuコンソール
$ sudo nano /etc/containerd/config.toml

disabled_plugins = ["cri"]をコメントアウトし、その上に二行追加します。

/etc/containerd/config.toml
...()...
version = 2                                           ← 追加

disabled_plugins = ["io.containerd.grpc.v1.cri"]      ← 追加
#disabled_plugins = ["cri"]                           ← コメントアウト("#"追加)
...()...

dockerのIP設定変更

dockerとWSL2が同じIP空間を使用しているので、万が一重複しないように、dockerのIP空間を変更しておきます。

以下のファイルを作成します。

Ubuntuコンソール
$ sudo nano /etc/docker/daemon.json
/etc/docker/daemon.json
{
    "bip": "192.168.96.254/24",
    "fixed-cidr": "192.96.128.0/24"
}

この設定を有効にするために、dockerを再起動します。

Ubuntuコンソール
$ sudo systemctl restart docker

Discussion