文章目录
无根用户管理podman
在允许没有root特权的用户运行Podman之前,管理员必须安装或构建Podman并完成以下配置
cgroup V2Linux内核功能允许用户限制普通用户容器可以使用的资源,如果使用cgroupV2启用了运行Podman的Linux发行版,则可能需要更改默认的OCI运行时。某些较旧的版本runc不适用于cgroupV2,必须切换到备用OCI运行时crun。
[root@wjh ~]# vim /usr/share/containers/containers.conf
runtime = "crun" //取消注释并将runc改为crun
[root@wjh ~]# podman run -d --name web -p 80:80 docker.io/library/nginx
ea419d52934a8c10f6fef4780f2014ec53de4aab691850373b8eda352ae42ef1
[root@wjh ~]# podman inspect web | grep crun
"OCIRuntime": "crun",
安装slirp4netns和fuse-overlayfs
在普通用户环境中使用Podman时,建议使用fuse-overlayfs而不是VFS文件系统,至少需要版本0.7.6。现在新版本默认就是了。
[root@wjh ~]# dnf -y install slirp4netns fuse-overlayfs //默认已安装
[root@wjh ~]# vim /etc/containers/storage.conf
mount_program = "/usr/bin/fuse-overlayfs" //取消注释
subuid和 subgid配置
Podman要求运行它的用户在/ etc / subuid和/ etc / subgid文件中列出一系列UID,shadow-utils或newuid包提供这些文件
- /etc/subuid文件格式是:USERNAME:UID:RANGE
- 映射到podman用户名
- 为用户分配的初始 UID
- 为用户分配的 UID 范围的大小
[root@wjh ~]# useradd wjh
useradd: user 'wjh' already exists
[root@wjh ~]# cat /etc/subuid
wjh:100000:65536
启动非特权ping
并不是有了subuid和subgid容器就可以被无根用户使用了,还需要启动非特权ping
[root@wjh ~]# sysctl -w "net.ipv4.ping_group_range=0 200000"
net.ipv4.ping_group_range = 0 200000 *//0 200000就是从100000开始,到200000区间内的用户都可使用podman*
用户配置文件
三个主要的配置文件是container.conf、storage.conf和registries.conf。用户可以根据需要修改这些文件。
container.conf文件
容器配置文件
优先级(从上到下,由高到低)
$HOME/.config/containers/containers.conf //优先级最高