IntelliJ及终端Docker权限拒绝求助:无法连接docker.sock
Docker权限拒绝问题排查与解决
问题现象
- 在IntelliJ IDEA中通过
docker-compose.yaml启动服务时,提示:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (Details: [13] Permission denied)
- 确认Docker服务处于运行状态:
$ service docker status ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-10-06 19:18:29 CEST; 19h ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 2968617 (dockerd) Tasks: 22 Memory: 925.9M CPU: 24.084s CGroup: /system.slice/docker.service └─2968617 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock - 终端执行
docker compose命令同样报错:$ docker compose -f docker-compose.yaml up -d permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dmongodb%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied - 安装
docker-compose后执行命令仍报错:$ docker-compose -f docker-compose.yaml up -d Traceback (most recent call last): File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 699, in urlopen ... PermissionError: [Errno 13] Permission denied During handling of the above exception, another exception occurred: Traceback (most recent call last): ... File "/usr/lib/python3/dist-packages/docker/transport/unixconn.py", line 30, in connect sock.connect(self.unix_socket) urllib3.exceptions.ProtocolError: ('Connection aborted.', PermissionError(13, 'Permission denied')) During handling of the above exception, another exception occurred: Traceback (most recent call last): ... requests.exceptions.ConnectionError: ('Connection aborted.', PermissionError(13, 'Permission denied')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/bin/docker-compose", line 33, in <module> sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')()) File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 81, in main command_func() ... File "/usr/lib/python3/dist-packages/docker/api/client.py", line 221, in _retrieve_server_version raise DockerException( docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
解决方案
原因分析
核心问题是当前用户没有访问Docker Unix套接字的权限,/var/run/docker.sock默认归属docker用户组,普通用户未加入该组时无法操作Docker服务。
步骤1:将当前用户加入docker用户组
执行命令:
sudo usermod -aG docker $USER
-aG参数确保将用户追加到docker组,不会覆盖原有组权限。
步骤2:刷新权限生效
无需重启系统,执行以下命令让权限立即生效:
newgrp docker
或者退出当前用户会话(包括关闭IntelliJ IDEA后重新打开),重新登录即可。
步骤3:验证权限
执行测试命令确认权限配置成功:
docker ps
如果能正常输出容器列表,说明权限配置完成。此时再执行docker compose up -d或在IntelliJ IDEA中启动服务即可正常运行。
临时应急方案(不推荐长期使用)
若需临时解决,可通过sudo执行命令:
sudo docker compose -f docker-compose.yaml up -d
但长期使用sudo存在安全风险,且IntelliJ IDEA无法直接通过sudo调用,因此优先推荐加入用户组的方案。
内容的提问来源于stack exchange,提问作者camilajenny
相关产品推荐
相关产品推荐

