首先,我尝试在 freeipa 中管理 dockerroot,因为这是我在sudo getent group | grep dock
.
我看到某处说我可以在 freeipa 中创建一个具有相同 GID 的组,它将与本地组同步。
这对我来说不是一个选择。我dockerroot
在几台机器上有这个组不同的GID。
所以我转向sss_override
。
我尝试过sudo sss_override group-add dockerroot -g <my_freeipa_gid>
,但我得到:
Unable to find group dockerroot@[unknown].
如果我遗漏了什么,我无法在文档中找到。我尝试使用dockerroot@localhost
但我得到:
Unable to parse name dockerroot@localhost.
我开始将 docker 部署到机器上,并希望几个用户能够在没有 sudo 的情况下运行 docker。我不想在每台目标机器上创建规则。每当我使用 docker 启动新机器时,特殊用户都应该通过 freeipa 规则自动获取组成员身份。
所做的事情yum remove docker && yum install docker
似乎也不会影响团队。
我可以删除它并重新创建它吗?我不知道我在这里破坏了什么,所以我犹豫是否要做更多。
现在我已经尝试按照 docker 的文档执行此操作:
sudo groupadd docker
sudo usermod -aG docker $USER
docker run hello-world
我希望在我的域中使用它,因此我在 freeipa 中创建该组,并将我的用户添加到其中。我给了它时间同步、注销并登录,然后检查了组:
sudo getent group docker
docker:*:<my_freeipa_id>:<my_uid>
但我的许可仍然被拒绝。
答案1
既然你有这个组dockerroot
,我假设你正在使用 RedHat/CentOS 提供的 Docker 包。
我认为问题在于 RedHat 默认情况下不提供 Docker 供组使用。要进行验证,请检查套接字文件的权限(默认位置/var/run/docker.sock
)。
您需要更改 Docker 配置(默认/etc/docker/daemon.json
)以使用您希望使用的组权限创建 Docker 套接字。您可以使用任何组,只要使用所需的组权限创建套接字文件即可。 daemon.json 配置文件的官方文档
这张 Bugzilla 门票有一个关于为什么默认权限不允许非root组运行Docker的声明