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.ymlversion: 字段已经废弃了。
解决办法:打开 docker-compose.dev.yml,把最上面的 version: "3" 之类的行删掉即可(不删也能跑,只是提示而已)。

 
sequential-thinking 报错 Invalid thoughtNumber: must be a number 解决个人笔记