Windows 11のWSL2上のUbuntuでDockerが起動できなかったときに行った対応についての備忘録。
問題
WSL2上でDockerのサンプルコンテナイメージ
sudo docker run hello-world
などを実行したとき、
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
といったエラーが発生してコンテナイメージを実行できない。
また、この状態でsystemctl
コマンドを実行すると、
System has not been booted with systemd as init system (PID 1). Can’t operate.
のようなエラーが発生してサービスを制御できない。
原因
WSL2のSystemdが有効化されていない。
対応
WSL2のSystemdを有効化する。
手順
-
Linuxコンテナ上の
/etc/wsl.conf
に以下の設定を行う。[boot] systemd=true
-
WSL2を再起動する。
ちなみに、私の場合は上記手順だけでは解決できませんでしたが、Microsoft Store経由で最新のWSLをインストールしたところ、Systemdが有効化されDockerも起動することができました。
参考ウェブサイトなど
- Microsoft Learn
systemd を使用して WSL で Linux サービスを管理する
以上です。