docker:尝试连接 Docker 守护进程套接字时权限被拒绝

docker:尝试连接 Docker 守护进程套接字时权限被拒绝

在 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 安装造成的。

相关内容