📅  最后修改于: 2023-12-03 15:20:54.301000             🧑  作者: Mango
在使用 Docker 时,当尝试连接到 Unix 套接字文件 unix:///var/run/docker.sock
时,可能会遇到以下错误:
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
或者类似的提示:
dial unix /var/run/docker.sock: connect: permission denied
这是因为没有足够的权限来连接该套接字文件。
有几个解决方案可以尝试:
sudo
最简单的解决方案是使用 sudo
命令以 root 用户身份运行 Docker 命令。例如:
sudo docker ps
这将在具有 Docker 访问权限的帐户下运行 Docker 命令。
docker
组中可以将用户添加到 docker
组中,以便对 Docker 命令具有足够的权限。
首先,检查当前用户是否已添加到该组中。如果用户不在该组中,请按以下步骤操作:
打开终端,并运行以下命令以将当前用户添加到 docker
组中:
sudo usermod -aG docker $USER
$USER
是当前用户的用户名。
将更改应用于当前会话。在 Bash 中,可以运行以下命令:
newgrp docker
这将在当前会话中刷新组成员身份。
确认更改是否已成功应用。可以通过运行以下命令来检查当前用户是否在 docker
组中:
id -nG
如果用户在该组中,则 docker
组的名称将包含在输出中。
还可以将套接字文件的权限更改为使当前用户可以连接:
sudo chmod 666 /var/run/docker.sock
这将为文件分配读写权限,以便 Docker 命令能够连接到套接字文件。
以上解决方案应该能够解决连接 Docker 运行时权限被拒绝的问题。通过使用 sudo
命令、添加用户到 docker
组中或更改套接字文件的权限,用户应该能够正确地连接到 Unix 套接字文件并运行 Docker 命令。