WSL2上でDockerが起動できないときの対応

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を有効化する。

手順

  1. Linuxコンテナ上の/etc/wsl.confに以下の設定を行う。

    [boot]
    systemd=true
  2. WSL2を再起動する。

ちなみに、私の場合は上記手順だけでは解決できませんでしたが、Microsoft Store経由で最新のWSLをインストールしたところ、Systemdが有効化されDockerも起動することができました。


参考ウェブサイトなど

  • Microsoft Learn
    systemd を使用して WSL で Linux サービスを管理する

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする