📌  相关文章
📜  ot 权限在尝试连接到 unix 上的 Docker 守护程序套接字时被拒绝:var run docker.sock: Post "http: %2Fvar%2Frun%2Fdocker.sock v1.24 containers create?name=redis": dial unix var run docker.袜子:连接:权限被拒绝.(1)

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

Docker 守护程序连接权限被拒绝

当使用 'ot' 用户权限连接到 Unix 上的 Docker 守护程序套接字时,可能会遇到以下错误:

Post "http: %2Fvar%2Frun%2Fdocker.sock v1.24 containers create?name=redis": dial unix var run docker.袜子:连接:权限被拒绝.

这个错误通常会发生在以下情况下:

  • 'ot' 用户没有正确的权限连接到 Unix 套接字 'docker.sock';
  • 'ot' 用户不属于 'docker' 组;
  • 'ot' 用户的权限与 Docker 守护程序不匹配。

为了解决这个问题,我们需要遵循以下步骤:

步骤1:将用户添加到 'docker' 组

在 Unix 上,我们可以使用以下命令将用户添加到 'docker' 组:

sudo usermod -aG docker ot

这将把用户 'ot' 添加到 'docker' 组中。如果该操作成功,我们需要重新启动 Docker 守护程序,以使更改生效:

sudo systemctl restart docker
步骤2:检查文件权限

我们还需要确保 'docker.sock' 套接字文件的权限已正确设置。我们需要执行以下命令:

sudo ls -al /var/run/docker.sock

这将以详细列表形式显示 'docker.sock' 文件的权限设置。如果该文件的所有者和组都是 'root:docker',则我们可以继续下一步。

步骤3:重启 Docker 守护程序

我们需要确保 Docker 守护程序正在运行,并可以使用以下命令检查其状态:

sudo systemctl status docker

如果该命令返回正常输出,则 Docker 守护程序正在运行,并且我们可以尝试连接到其套接字。

步骤4:启动 Docker 容器

现在我们已经完成了 'ot' 用户的设置,我们可以尝试启动 Docker 容器。我们可以使用以下命令启动 Redis 容器:

docker run --name redis -d redis

该命令将启动一个名为 'redis' 的 Docker 容器,并在该容器中运行 Redis 服务器。

现在,我们已经成功启动了 Docker 容器,并可以确保 'ot' 用户具有足够的权限来连接到 Docker 守护程序的套接字。