解决 ERROR:Docker Got permission denied while trying to connect to the Docker daemon socket at unix://

报错信息:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/prune: dial unix /var/run/docker.sock: connect: permission denied
SHELL > docker pull mooncar/mooncar:dev-x86_64-20180627_1727
Warning: failed to get default registry endpoint from daemon (Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/info: dial unix /var/run/docker.sock: connect: permission denied). Using system default: https://index.docker.io/v1/
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.37/images/create?fromImage=mooncar%2Fmooncar&tag=dev-x86_64-20180627_1727: dial unix /var/run/docker.sock: connect: permission denied

正确的是将当前用户加入docker组:

sudo gpasswd -a ${USER} docker

然后退出当前用户比如切换为root,再次切换为jing。然后执行docker-compose up -d就ok了。

jing@ubuntu:/tmp/docker$ sudo su
root@ubuntu:/tmp/docker$ su jing
jing@ubuntu:/tmp/docker$ sudo apt-get install docker-compose
jing@ubuntu:/tmp/docker$ docker-compose up -d
错误信息 "ailed to get default registry endpoint from daemon" (Got permission denied while trying to connect to the Docker daemon socket at ...) 表明你在尝试与 Docker 守护进程建立连接时遇到权限拒绝的问题。这种错误通常发生在以下几种情况之一: ### 1. Docker 用户权限不足 - **原因**: 默认情况下,Docker 使用一个特殊用户(通常是 `docker` 用户)来启动守护进程。如果当前运行命令的用户不是这个 `docker` 用户或没有足够的权限,则可能会收到此类错误。 - **解决办法**: - 如果你需要以普通用户身份运行某些 Docker 操作,你可以通过添加 `-u` 参数来指定特定用户的 UID/GID 来与守护进程交互。 - 或者切换到 `docker` 用户环境再运行命令,如 `sudo su docker && docker [command]` ### 2. Docker 守护进程未启动或服务不可用 - **原因**: 如果 Docker 守护进程尚未启动,或者由于某种原因服务无法正常运行(例如,资源耗尽、内存溢出等),则可能无法与之通信。 - **解决办法**: 可以通过检查 `systemctl status docker` (在 Linux 上)或查看 Windows Services 控制台(在 Windows 上)来确认 Docker 服务的状态。如果是 Windows 平台,也可以直接尝试重启 Docker 服务。 ### 3. Docker 配置文件路径错误或权限问题 - **原因**: 如果 Docker 的配置文件(通常是 `/etc/docker/daemon.json` 对于 Linux 或 `%USERPROFILE%\.docker\config\daemon.json` 对于 Windows)存在路径问题,或者该文件的权限不足以供当前用户访问,则同样可能导致连接失败。 - **解决办法**: 检查并验证 `daemon.json` 文件的路径配置以及文件本身的读取权限。修改配置文件路径至正确的目录,然后调整文件的权限使其对运行当前操作的用户可读可写。 ### 总结性的建议: - 确认当前操作的用户是否有足够的权限去启动和控制 Docker 守护进程。 - 检查 Docker 守护进程的服务状态和日志,查找可能导致连接失败的其他潜在原因。 - 如果是在非默认路径下运行 Docker 或使用了自定义配置文件,务必确认这些路径及其内容的完整性与权限设置正确。 --- 如果上述解决方案未能解决问题,可能需要进一步深入排查系统级或应用程序级别的其他潜在故障点,包括但不限于操作系统设置、防火墙规则、安全组配置等。同时,查阅 Docker 的官方文档或社区论坛获取更多特定场景下的指导信息也十分有益。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值