type
Post
status
Published
date
Nov 20, 2025
slug
summary
tags
Docker
category
技术分享
icon
password
Property
Nov 20, 2025 08:59 AM
Language
你这个报错其实就是经典的:当前用户
user 没有访问 /var/run/docker.sock 的权限,所以不能直接用 docker / docker compose。下面按步骤给你一套给用户 user 添加 Docker 权限的办法(假设你有
sudo 权限,并且是常见的 Ubuntu/Debian 系列):1. 确认 docker 进程在跑
sudo systemctl status docker
- 如果是
active (running)就没问题
- 如果没跑,可以启动一下:
sudo systemctl start docker
2. 确认 docker 用户组是否存在
getent group docker
- 如果有输出(例如
docker:x:999:),说明 docker 组已经存在,直接下一步。
- 如果没有任何输出,先建一个 docker 组:
sudo groupadd docker
3. 把用户 user 加入 docker 组
sudo usermod -aG docker user
如果你现在登录的就是
qi 这个用户,也可以写:sudo usermod -aG docker $USER
4. 让新组权限生效
有两种常见方式,任选一种:
方式 A:重新登录(最推荐)
退出当前终端 / SSH,再重新登录一次用户
user,组权限就会生效。方式 B:当前 shell 立刻生效
在当前终端里执行:
newgrp docker
执行完后,再试一下:
docker ps
如果不再报
permission denied,说明权限 OK 了。5. 再跑刚才的 docker compose
回到你的项目目录:
docker compose -f docker-compose.dev.yml up
应该就不会再出现:
permission denied while trying to connect to the Docker daemon socket
顺带说一下那个 WARN
the attribute `version` is obsolete, it will be ignored
这是 Docker Compose v2 以后提示
docker-compose.yml 里 version: 字段已经废弃了。解决办法:打开
docker-compose.dev.yml,把最上面的 version: "3" 之类的行删掉即可(不删也能跑,只是提示而已)。- Author:Qi
- URL:https://blog.ltq.im/article/2b1ab3b7-4a43-8014-ba9c-f5522a2e0f1b
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts