docker rootless

非root用户无法运行Docker,使用root权限启用Docker服务时,外部可针对Docker守护程序或运行中的容器的漏洞间接获取到root权限,在 V19.03 中实验性引入Rootless mode用于缓解守护程序和容器运行时中的潜在漏洞。V20.10 正式使用。
环境搭建:
containerd.io
docker-ce-rootless-extras-20.10.0-3.el8.x86_64.rpm
fuse-overlayfs-1.6-1.x86_64.rpm
slirp4netns-1.1.8-1.x86_64.rpm
container-selinux-2.158.0-1.rpm
fuse3-3.2.1-12.x86_64.rpm
libslirp-4.3.1-1.x86_64.rpm
docker-ce-20.10.0-3.x86_64.rpm
fuse3-libs-3.2.1-12.x86_64.rpm
docker-ce-cli-20.10.0-3.x86_64.rpm
fuse-common-3.2.1-12.x86_64.rpm
shadow-utils46-newxidmap-4.6-4.el7.ppc64le.rpm

shadow-utils46-newxidmap下载地址:
https://download.copr.fedorainfracloud.org/results/vbatts/shadow-utils-newxidmap/epel-7-ppc64le/00856388-shadow-utils46/

主机上必须安装 newuidmap newgidmap uidmap(大多数Linux发行版上都默认安装,未安装执行以下命令即可)
shadow-utils-4.6-12.1.el8.x86_64

创建用户

groupadd rootless
useradd rootlessUser -g rootless
passwd rootlessUser 

文件/etc/subuid及/etc/subgid中至少应包含65536 个从属 UID/GID。

cat /etc/subuid
cat /etc/subgid

在这里插入图片描述

cat <<EOT >/etc/sysctl.conf
user.max_user_namespaces = 28633
EOT
sysctl --system

启动Docker

su rootlessUser 
/usr/bin/dockerd-rootless-setuptool.sh install

根据提示添加用户环境变量:

vim ~/.bashrc
#添加以下内容
export XDG_RUNTIME_DIR=/home/rootlessUser/.docker/run
export PATH=/home/rootlessUser/bin:$PATH
export DOCKER_HOST=unix:///home/rootlessUser/.docker/run/docker.sock
#############end
source ~/.bashrc

启动dockerd

dockerd-rootless.sh --experimental --storage-driver vfs

因为socket指定在各用户的根目录下:

[fw@nydus-pull-178 run]$ pwd
/home/fw/.docker/run
[fw@nydus-pull-178 run]$ ls
docker  docker.pid  docker.sock

不同用户间dockerd彼此独立,类似于对dockerd做了usernamespace操作:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值