在无根环境中的基本设置和使用Podman

本文详细介绍了在无root权限环境下如何配置和使用Podman,包括cgroup V2设置、slirp4netns和fuse-overlayfs的安装、/etc/subuid和/etc/subgid的配置、用户配置文件如container.conf、storage.conf和registries.conf的修改,以及授权文件、卷的使用和端口映射等问题。无根用户在运行Podman时需要注意容器的IP、文件权限和端口映射等事项。
摘要由CSDN通过智能技术生成

在无根环境中的基本设置和使用Podman

用户操作

在允许没有root特权的用户运行Podman之前,管理员必须安装或构建Podman并完成以下配置:

cgroup V2Linux内核功能允许用户限制普通用户容器可以使用的资源,如果使用cgroupV2启用了运行Podman的Linux发行版,则可能需要更改默认的OCI运行时。某些较旧的版本runc不适用于cgroupV2,必须切换到备用OCI运行时crun。

[root@slave1 ~]# yum -y install crun
[root@slave1 ~]# vim /usr/share/containers/containers.conf
# Default OCI runtime
#
runtime = "crun"
#runtime = "runc"  //取消crun注释并将runc注释掉
[root@slave1 ~]# podman run -d --name web -p 80:80 docker.io/library/httpd 
514355e5e1269be07ba0783c5ae0c81435193e3c86c2767b5c32b2ad7405078b
[root@slave1 ~]# podman inspect web |grep crun
        "OCIRuntime": "crun",
            "crun",

安装slirp4netns和fuse-overlayfs

在普通用户环境中使用Podman时,建议使用fuse-overlayfs而不是VFS文件系统,至少需要版本0.7.6。现在新版本默认就是了。

[root@slave1 ~]# yum -y install slirp4netns
[root@slave1 ~]# yum -y install fuse-overlayfs
[root@slave1 ~]# vim /etc/containers/storage.conf
# directly.
mount_program = "/usr/bin/fuse-overlayfs"   //取消注释

/ etc / subuid和/ etc / subgid配置

Podman要求运行它的用户在/ etc / subuid和/ etc / subgid文件中列出一系列UID,shadow-utils或newuid包提供这些文件

[root@slave1 ~]# yum -y install shadow-utils
可以在/ etc / subuid和/ etc / subgid查看,每个用户的值必须唯一且没有任何重叠。
[root@slave1 ~]# useradd zz
[root@slave1 ~]# cat /etc/subuid
zz:427680:65536
[root@slave1 ~]# cat /etc/subgid
zz:427680:65536
// 启动非特权ping 
[root@slave1 ~]# vim /etc/sysctl.conf
# For more information, see sysctl.conf(5) and sysctl.d(5).
#
net.ipv4.ping_group_range=0 200000   //大于100000这个就表示用户可以操作podman  

这个文件的格式是 USERNAME:UID:RANGE中/etc/passwd或输出中列出的用户名getpwent。

  • 为用户分配的初始 UID。
  • 为用户分配的 UID 范围的大小。

该usermod程序可用于为用户分配 UID 和 GID,而不是直接更新文件。

[root@slave1 ~]# usermod --del-subuids 427680-493216 --del-subgids 427680-493216 zz
[root@slave1 ~]# usermod --add-subuids 200000-201000 --add-subgids 200000-201000 zz  
[root@slave1 ~]# grep zz /etc/subuid /etc/subgid
/etc/subuid:zz:200000:1001
/etc/subgid:zz:200000:1001

用户配置文件

三个主要的配置文件是container.conf、storage.conf和registries.conf。用户可以根据需要修改这些文件。

container.conf

// 用户配置文件
[root@slave1 ~]# cat /usr/share/containers/containers.conf
[root@slave1 ~]# cat /etc/containers/containers.conf
[root@slave1 ~]# cat ~/.config/containers/containers.conf //优先级最高

如果它们以该顺序存在。每个文件都可以覆盖特定字段的前一个文件。

配置storage.conf文件

1./etc/containers/storage.conf
2.$HOME/.config/containers/storage.conf

在普通用户中/etc/containers/storage.conf的一些字段将被忽略

[root@slave1 ~]# vim /etc/containers/storage.conf
# Default Storage Driver, Must be set for proper operation.</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值