📌  相关文章
📜  尝试在 unix 上连接到 Docker 守护程序套接字时获得权限被拒绝:var run docker.sock (1)

📅  最后修改于: 2023-12-03 15:39:21.269000             🧑  作者: Mango

尝试在 unix 上连接到 Docker 守护程序套接字时获得权限被拒绝:var run docker.sock

当需要在 Unix 系统上使用 Docker 时,我们通常需要连接到 Docker 守护程序套接字来执行 Docker 命令。然而,有时会遇到这样的错误信息:

权限被拒绝:var run docker.sock

这个错误是由于当前用户没有访问 Docker 守护程序套接字的权限所导致的。

解决方法

要解决这个问题,我们可以尝试以下几种方法:

1. 添加用户到 Docker 组

我们可以将当前用户添加到 Docker 组中,以使其可以访问 Docker 守护程序套接字。

首先,我们需要检查当前用户是否已经在 Docker 组中。在终端中执行以下命令:

groups

如果结果中包含 Docker 组,则跳过此步骤。

如果结果中不包含 Docker 组,则执行以下命令将当前用户添加到 Docker 组中:

sudo usermod -aG docker $(whoami)
2. 检查 Docker 守护程序套接字的权限

我们还需要检查 Docker 守护程序套接字的权限是否正确。在终端中执行以下命令:

ls -l /var/run/docker.sock

输出结果应该类似于:

srw-rw---- 1 root docker 0 Nov 15 10:52 /var/run/docker.sock

其中,第一个字母是 socket 类型,后面的 rw 表示读写权限,root docker 表示文件所有者为 root 用户,拥有组为 docker 组。

如果我们发现权限不正确,则可以执行以下命令修复:

sudo chown root:docker /var/run/docker.sock && sudo chmod 660 /var/run/docker.sock
3. 重启 Docker 服务

如果上面的方法都没有解决问题,我们可以尝试重启 Docker 服务。执行以下命令:

sudo systemctl restart docker.service
结论

以上是解决“尝试在 Unix 上连接到 Docker 守护程序套接字时获得权限被拒绝:var run docker.sock”的方法。一般情况下,添加用户到 Docker 组或检查权限问题即可解决。如果问题仍然存在,可以尝试重启 Docker 服务。