0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめての記事投稿
Qiita Engineer Festa20242024年7月17日まで開催中!

WSL2(Ubuntu)でdocker daemonが起動しない場合の対処法

Last updated at Posted at 2024-06-28

環境

  • WSL2
  • Ubuntu
  • Docker version 26.0.0 以下の埋め込みを参考にインストール済

Ubuntu 20.04へのDockerのインストールおよび使用方法 | DigitalOcean

結論

以下のコマンドを実行して解決した。

$ sudo usermod -aG docker $USER
$ sudo service docker start

$ sudo systemctl start nftables
$ sudo systemctl enable nftables
$ sudo service docker start

しかしこれだけでクリティカルに解決したわけではないので詳細は以下を参考にしてください。

現状

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

$ sudo service docker start
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xeu docker.service" for details.

$ sudo service docker status
× docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2024-03-27 11:30:07 JST; 1min 28s ago
TriggeredBy: × docker.socket
       Docs: https://docs.docker.com
    Process: 6762 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/F>
   Main PID: 6762 (code=exited, status=1/FAILURE)
 

解決策(1)

$ sudo usermod -aG docker $USER
$ sudo service docker start

結果(1)

$ sudo service docker status
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: activating (start) since Wed 2024-03-27 11:47:44 JST; 36ms ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 2597 (dockerd)
      Tasks: 9
     Memory: 20.5M
     CGroup: /system.slice/docker.service
             └─2597 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

解説(1)

Linuxシステムでは、コマンドを実行するユーザーは、Docker デーモンに接続する docker グループのメンバーである必要があったがそうでなかった。そのため、 usermod -aG docker $USERコマンドで現在のユーザーをdockerグループに入れることで解決できた。

しかしこの後、またinactive状態になってしまったので、再度原因確認をした。

現状(2)

$ sudo dockerd --debug
(省略)
DEBU[2024-03-27T12:26:20.624543879+09:00] unmounting daemon root                        mountpoint=/var/lib/docker
failed to start daemon: Error initializing network controller: error creating default "bridge" network: Failed to program NAT chain: COMMAND_FAILED: 'python-nftables' failed: internal:0:0-0: Error: Could not process rule: No such file or directory

$ dpkg -l | grep nftables
ii  libnftables1:amd64            1.0.2-1ubuntu3                          amd64        Netfilter nftables high level userspace API library
ii  libnftnl11:amd64              1.2.1-1build1                           amd64        Netfilter nftables userspace API library
ii  nftables                      1.0.2-1ubuntu3                          amd64        Program to control packet filtering rules by Netfilter project

$ sudo systemctl status nftables
○ nftables.service - nftables
     Loaded: loaded (/lib/systemd/system/nftables.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:nft(8)
             http://wiki.nftables.org

解決策(2)

$ sudo systemctl start nftables

$ sudo systemctl enable nftables
Created symlink /etc/systemd/system/sysinit.target.wants/nftables.service → /lib/systemd/system/nftables.service.

$ sudo service docker start

結果(2)

$ sudo systemctl status nftables
● nftables.service - nftables
     Loaded: loaded (/lib/systemd/system/nftables.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2024-03-27 12:31:29 JST; 6min ago
       Docs: man:nft(8)
             http://wiki.nftables.org
   Main PID: 13792 (code=exited, status=0/SUCCESS)

Mar 27 12:31:29 IBM-PF44YKZS systemd[1]: Starting nftables...
Mar 27 12:31:29 IBM-PF44YKZS systemd[1]: Finished nftables.

$ sudo service docker status
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-03-27 12:39:45 JST; 2s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 15765 (dockerd)
      Tasks: 11
     Memory: 37.4M
     CGroup: /system.slice/docker.service
             └─15765 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

解説

debug結果によると、デフォルトの「bridge」ネットワークを作成する過程でNATチェーンのプログラミングに失敗し、「python-nftables」が原因でエラーが発生していたらしい。

**No such file or directory**のエラーは、通常、必要なファイルやディレクトリが見つからない場合に表示されるとのこと。

したがって、systemctl start nftables で解決した。

参考

How to Resolve the "cannot connect to the Docker daemon" Error

How to fix “cannot connect to the Docker daemon” Error - GeeksforGeeks

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?