在 Ubuntu 18.04 系统上,我克隆了一个项目并运行它,gradle
但在运行 gradle 命令时gradle swiplRun
出现以下错误
任务:dockerRun FAILED docker:尝试连接到 unix:///var/run/docker.sock 上的 Docker 守护进程套接字时权限被拒绝:发布http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create?name=swiprolog:dial unix /var/run/docker.sock:connect:权限被拒绝。请参阅“docker run --help”。
任务:dockerRunStatus FAILED 尝试连接到 unix:///var/run/docker.sock 上的 Docker 守护进程套接字时权限被拒绝:获取http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/swiprolog/json:拨号 unix /var/run/docker.sock:连接:权限被拒绝
失败:构建完成,但出现 2 次失败。
为了解决我试过
$ sudo groupadd docker
$ sudo usermod -a -G docker myname
"and once with"
$ sudo gpasswd -a myname docker
所以我可以在没有 sudo 的情况下运行 docker 命令,但也会出现同样的错误,./gradlew --stop
并且注销/登录和重启也不起作用。
是因为 Docker 还是 Gradle?
答案1
我犯了同样的错误
尝试连接到 unix:///var/run/docker.sock 上的 Docker 守护进程套接字时权限被拒绝:获取“http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1”:拨号 unix /var/run/docker.sock:连接:权限被拒绝
运行 docker ps 时
有帮助的是:
sudo gpasswd -a $USER docker
newgrp docker
请参阅 Stack OverflowDocker-compose up:获取服务器 API 版本时出错:('连接中止',ConnectionRefusedError(61,'连接被拒绝'))
其他方式:
sudo usermod -aG docker $USER
sg docker -c "bash"
它的作用与上面的相同,不需要运行两条线路。
如果您检查了所有这些命令一次,但仍然收到错误,那么您就知道这不是 Docker 的问题,而是 Gradle 的问题。这意味着 Gradle 在某些时候没有获得所需的 sudo 权限。举一个例子,这可能是由于容器上的本地 python 安装而不是系统范围的 python 安装造成的。