在我定期更新系统和应用程序后,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套接字不在正确的位置。
我能够通过执行以下操作来解决:
停止/禁用/删除 Docker
sudo systemctl stop docker
sudo systemctl disable docker
sudo pacman -Rs docker
重启
sudo rm -rf /var/run
重启。
/var/run
现在又是一个符号链接ls -al /var/run lrwxrwxrwx 1 root root 6 Sep 19 14:04 /var/run -> ../run
重新安装/启动/启用 Docker。
sudo pacman -S docker
sudo systemctl start docker
sudo systemctl enable docker
docker.sock
现在,/run
docker 组的 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
不多不少。