使用非root用户安装及启动docker的问题(rootless模式运行)

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享
免费资源网 – https://freexyz.cn/

目录一、容器用户与宿主机用户映射二、在非root用户下运行docker守护进程2.1.docker版本要求2.2. 前置条件2.3.开始rootless模式安装2.4.启动守护进程运行容器三、存在若干已知的限制。四、卸载Rootless docker

通过我之前的文章已经可以验证,在root用户下安装启动的容器存在安全问题。究其原因是因为:

使用非root用户安装及启动docker的问题(rootless模式运行)插图

容器内的root用户就是宿主机的root用户,容器内uid=1000的用户就是宿主机uid=1000的用户docker的守护进程是root权限的

既然我们知道了原因,那么我们就来解决一下这两个问题。

一、容器用户与宿主机用户映射

docker是使用–userns-remap容器用户映射宿主机用户的方式来解决问题,具体的方法描述如下:

用户和组的映射由两个配置文件来控制,分别是/etc/subuid和/etc/subgid。

echo “zimug:100000:65536” | tee /etc/subuid;
echo “zimug:100000:65536” | tee /etc/subgid;

subuid(sub子uid用户id):对于subuid的这一行表示,宿主机用户zimug的用户ip段为[100000,10000 65535]。也就是说,使用zimug这个宿主机启动容器,容器内的用户uid与宿主机内的用户uid存在关系。也就是说按照上面的配置

使用非root用户安装及启动docker的问题(rootless模式运行)插图1

zimug这个用户的容器子用户id(subuid),只能在[100000-165535]之间进行分配。[0-99999]这个区间范围内的uid仍然保留给宿主机进行使用。使用zimug启动的第一个容器,容器用户root(uid=0)对应的宿主机用户应该是uid=100000(不是宿主机root用户)使用zimug启动的第二个容器,容器用户root(uid-0)对应的宿主机用户可能是uid=101000(也不是宿主机root用户)subgid表示的是用户组id的映射关系,映射原理和uid是一致的。

二、在非root用户下运行docker守护进程

2.1.docker版本要求

既然root用户的提权问题解决了,我们就要解决下一个问题:docker的守护进程是root权限的,即运行docker守护进程的用户仍然是root。我们需要做如下修正:

使用非root用户安装及启动docker的问题(rootless模式运行)插图2

也就是我们要在非root用户下安装docker,并启动docker守护进程,这种安装及运行模式被称为“RootLess”模式。可以安装但是存在先决条件:“RootLess”模式是在 Docker Engine v19.03 中作为实验性功能引入的,从 Docker Engine v20.10 开始提供正式使用。

2.2. 前置条件

需要安装newuidmap和newgidmap工具shadow-utils,即配置上文中的/etc/subuid和/etc/subuid需要这两个工具的支持。安装之前使用yum list installed shadow-utils确认下是否已经安装过或者操作系统自带,如果存在就不要安装了,但第三步的配置是需要的。

第一步:添加一个软件包安装源,该源下面包含shadow-utils46-newxidmapcurl -o /etc/yum.repos.d/vbatts-shadow-utils-newxidmap-epel-7.repo https://copr.fedorainfracloud.org/coprs/vbatts/shadow-utils-newxidmap/repo/epel-7/vbatts-shadow-utils-newxidmap-epel-7.repo

第二步: yum install -y shadow-utils46-newxidmap

第三步:在/etc/sysctl.conf文件中修改系统参数user.max_user_namespaces = 28633,修改完成之后执行sysctl –system命令让参数生效。echo user.max_user_namespaces=28633


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容