将当前用户加入docker组是最常用、最安全的解决方式;docker守护进程默认赋予docker组对/var/run/docker.sock的读写权限,用户加入后可免sudo执行docker命令。

直接把当前用户加入 docker 用户组,是最常用、最安全的解决方式。Docker 守护进程启动后,默认把 Unix socket(/var/run/docker.sock)的读写权限赋予 docker 组,只要用户属于该组,就能免 sudo 执行所有 docker 命令。
创建并加入 docker 用户组
如果系统尚未创建 docker 组,先创建;然后把当前用户加进去:
-
sudo groupadd docker(若提示已存在可跳过) -
sudo usermod -aG docker $USER(推荐写法,比gpasswd更通用) - 退出当前终端,重新登录(或运行
newgrp docker临时刷新组权限)
验证是否生效
重新打开终端后,运行:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
-
docker info或docker ps - 不报
permission denied就说明成功 - 也可用
groups查看当前用户所属组里是否含docker
常见补充处理
极少数情况下,即使加了组仍失败,可检查以下几点:
-
ls -l /var/run/docker.sock—— 确认 socket 文件属组为docker,权限含g+rw(如srw-rw----) - 若 socket 权限异常,可临时修复:
sudo chmod 660 /var/run/docker.sock && sudo chgrp docker /var/run/docker.sock(不建议长期依赖此操作) - 确认 Docker 服务正在运行:
sudo systemctl status docker,必要时重启:sudo systemctl restart docker
不推荐的替代方案
以下方法虽能“绕过”权限问题,但存在明显风险,应避免:
- 给
/var/run/docker.sock加全局读写(chmod 666)—— 意味着任意用户都能控制 Docker,等同于开放 root 权限 - 长期使用
sudo docker—— 增加误操作风险,且违背最小权限原则 - 修改 Docker daemon 配置监听 TCP(如
-H tcp://0.0.0.0:2375)并关闭认证—— 极度危险,易被远程利用










