Linux (Manjaro) 上的 Docker,系统更新后将套接字位置从 /var/run/docker.sock 更改为 /run/docker.soc - docker 无法工作

Linux (Manjaro) 上的 Docker,系统更新后将套接字位置从 /var/run/docker.sock 更改为 /run/docker.soc - docker 无法工作

在我定期更新系统和应用程序后,docker(和 docker-compose 插件)无法工作:

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

如果我使用 sudo ls -la /var/run/docker.sock:

/var/run/docker.sock: No such file or directory (os error 2).

如果我使用: sudo systemctl status docker,我会看到套接字的其他位置:

level=info msg="API listen on /run/docker.sock"

目前我只使用链接解决方案:

sudo ln -s /run/docker.sock /var/run/docker.sock 

make 套接字地址在哪里?我可以为此更改某处配置吗?

谢谢。

答案1

我遇到了这个问题以及本次更新的一部分。不知怎的/var/run,它应该总是被符号链接/run变成一个实际的目录,所以docker套接字不在正确的位置。

我能够通过执行以下操作来解决:

  1. 停止/禁用/删除 Docker

    • sudo systemctl stop docker
    • sudo systemctl disable docker
    • sudo pacman -Rs docker
  2. 重启

  3. sudo rm -rf /var/run

  4. 重启。

  5. /var/run现在又是一个符号链接

    ls -al /var/run 
    lrwxrwxrwx 1 root root 6 Sep 19 14:04 /var/run -> ../run
    
  6. 重新安装/启动/启用 Docker。

    • sudo pacman -S docker
    • sudo systemctl start docker
    • sudo systemctl enable docker
  7. docker.sock现在,/rundocker 组的 docker 命令再次正确运行。

    ls -al /var/run/docker.sock
    srw-rw---- 1 root docker 0 Sep 19 14:06 /var/run/docker.sock
    

答案2

简单地:

ln -sv /run /var/run

不多不少。

相关内容