【WSL2】DockerでCannot connect to the Docker daemon…と表示される問題の対処

コンテナ技術

この記事の内容

WindowsでWSL2を使用して、Dockerのコマンドを起動した際に以下のコマンドが表示されて起動できないことがあったのでその対処方法を記載します。

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解決方法

dockerのサービスを起動する

まず、この問題で真っ先に考えられるのは、dockerのサービスが起動していないということです。起動するには以下のコマンドで起動します。

sudo service docker start

私の場合は、コマンドの結果が * Starting Docker: docker [OK]となるものの、エラーは相変わらず変わらない状態でした。

dockerのログを確認する

上記の方法で解決しなかったため、dockerのログを表示して内容を確認しました。ログは、/var/log/docker.logにあったので、そのログファイルの内容を表示して内容を確認します。

sudo cat /var/log/docker.log

私のほうでは以下のようなログがでていました。この内容から対応方法を調べることにしました。

failed to start daemon: Error initializing network controller: error obtaining controller instance: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain:  (iptables failed: iptables --wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN: iptables v1.8.7 (nf_tables):  RULE_APPEND failed (No such file or directory): rule in chain DOCKER-ISOLATION-STAGE-1
 (exit status 4))

iptablesの設定を古いものに変更する

以下のコマンドを実行して、うまく動作するようになりました。

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
WSL2 Kernel do not support `nftables` and causing docker failed to start up in Ubuntu 20.10+ · Issue #6655 · microsoft/WSL
Environment Windows build number: 21327 Your Distribution version: Ubuntu Hirsute Hippo (development branch) Whether the issue is on WSL 2 and/or WSL 1: WSL2 St...
WSL2 Kernel do not support `nftables` and causing docker failed to start up in Ubuntu 20.10+ · Issue #6655 · microsoft/WSL
Environment Windows build number: 21327 Your Distribution version: Ubuntu Hirsute Hippo (development branch) Whether the issue is on WSL 2 and/or WSL 1: WSL2 St...

コメント