🐅
Ubuntu22.04(WSL2)にDockerをインストール
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