WSLにDockerEngineをセットアップする手順
WSLでDockerEngineを使う場合、
WSL既定ではsystemdが無効になっているので、
Docker公式の手順だけでは動かないです。
Docker公式の手順に、WSLでsystemdを有効にする手順を加えるだけなのですが。
このエントリでは、個人的なメモとして一通りの流れを書いておきます。
(2022.11.18 追記)
systemd=true に設定すると、
以下手順のFcitx日本語キーボード設定がUnavailableになってしまうので、
ブート設定でdocker engineを起動する方法も追記しました。
WSLgでPyCharmを動かすまでの手順メモ | takemikami.com
https://takemikami.com/2022/11/16/WSLgPyCharm.html
試していないですが、ドキュメントによると
ブート設定での起動はWindows11 or Server 2022が必要なようです。
(要するにWindows10ではダメということ)
(2022.11.18 追記ここまで)
方法1: WSLでsystemdを有効にする
冒頭で説明したとおり、WSLでsystemdを有効にします。
設定方法は、次のサイトの説明の通りです。
WSL での詳細設定の構成 | Microsoft Learn
https://learn.microsoft.com/ja-jp/windows/wsl/wsl-config
/etc/wsl.conf に以下を追記する。(sudoして編集する必要があります)
[boot]
systemd=true
一旦、WSLを停止する。PowerShellで、以下のコマンドを実行。
wsl --shutdown
WSLのTerminalを立ち上げて、サービスの一覧が表示されることを確認する。
(systemdが動いていなければ、「ホストが落ちています」とか表示される)
systemctl list-units --type=service
Docker Engineのセットアップ
DockerEngineをセットアップします。
Docker公式ドキュメントの手順どおりです。
Install Docker Engine on Ubuntu | docker docs
https://docs.docker.com/engine/install/ubuntu/
リポジトリの準備
以下のコマンドを入力して、
Dockerリポジトリを使えるように準備します。
(Docker公式ドキュメントの手順どおりです)
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker Engineのセットアップ
以下のコマンドを入力して、
DockerEngineをセットアップします。
(Docker公式ドキュメントの手順どおりです)
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
セットアップが完了したら、以下のコマンドでDockerが使えることを確認します。
sudo docker ps
方法2: WSLのブート設定でdocker engineを起動する (2022.11.18 追記)
(方法1の場合は、この手順は不要)
ブート設定でdocker engineを起動する方法です。
設定方法は、次のサイトの説明の通りです。
/etc/wsl.conf に以下を追記する。(sudoして編集する必要があります)
[boot]
command=service docker start
一旦、WSLを停止する。PowerShellで、以下のコマンドを実行。
wsl --shutdown
ユーザへのdocker実行権限追加
sudo無しで利用出来るように、ユーザに権限を追加します。
Docker公式ドキュメントの手順どおりです。
Post-installation steps for Linux | docker docs
https://docs.docker.com/engine/install/linux-postinstall/
sudo usermod -aG docker $USER
ユーザをdockerグループに追加したら、WSLのTerminalを立ち上げ直します。
以下のコマンドで、Dockerが使えることを確認します。
docker run hello-world
以上。