LabHub
学习 学习路径 课程

Rootless Podman 运维

rootless podman 的初始配置

在 LabHub 中继续学习

目标

专用用户podster从头开始配置用于的rootless podman环境,podman info进行验证。

为什么重要

rootless podman 的设置比安装更重要。/etc/subuid如果没有带宽,就进入单一UID模式,安静地还原,只有在特定图像中才会出现权限错误,需要几天时间才能找到原因。graphroot如果不确认的话,主分区会填满,服务会停止。unqualified-search-registries如果不放入的话,在docker上正常运行的脚本在podman上找不到映像。

这个实训的检查清单是在实际工作中在新的服务器上设置rootless podman时直接使用的顺序。

阶段

  1. /root/pod创建目录,用户podsteruid gid 홈경로用空格区分,在一行/root/pod/user.txt请写在上面。
  2. /etc/subuidpodster请分配给开始100000,数量65536个代理。
  3. /etc/subgid请分配与EDO相同的代役。
  4. /root/pod/mapping.txt请用以下3行组成。 CONTAINER_0=<컨테이너 안 UID 0 에 대응하는 호스트 UID>/CONTAINER_1=<컨테이너 안 UID 1 의 호스트 UID>/CONTAINER_1000=<컨테이너 안 UID 1000 의 호스트 UID>
  5. /home/podster/.config/containers/storage.conf请制作。[storage]在章节中driverrunrootgraphroot必须有三个身高,graphroot/home/podster/.local/share/containers/storage需要。文件所有者是podster必须是。
  6. /home/podster/.config/containers/registries.conf请制作。unqualified-search-registriesdocker.io必须包含,docker.io购买内部镜子mirror.labhub.local/dockerhub发送到[[registry]]必须有块。文件所有者podster必须是。
  7. podster根据授权podman info执行后得到结果/root/pod/info.json请保存为。必须是JSON格式graphRoot值必须是5次指定的路径。
  8. /root/pod/checklist.txt请用以下5行组成。 SUBUID=yes/SUBGID=yes/ROOTLESS=<info 의 rootless 값 true/false>/GRAPHROOT=<info 의 graphRoot 값>/DRIVER=<info 의 스토리지 드라이버 이름>

参考

确认对象用户

/root/pod创建目录,用户podsteruid gid 홈경로用空格区分,在一行/root/pod/user.txt请写在上面。

可以通过id命令确认uid、gid、主目录。getent passwd也很有用。

subuid频段分配

/etc/subuidpodster请分配给开始100000,数量65536个代理。

格式是用户:开始UID:数量。也可以用usermod,也可以直接编辑文件。

subgid 频段分配

/etc/subgid请分配与EDO相同的代役。

是和subuid一样的格式。GID也出于同样的原因需要带宽。

映射计算

/root/pod/mapping.txt请用以下3行组成。 CONTAINER_0=<컨테이너 안 UID 0 에 대응하는 호스트 UID>/CONTAINER_1=<컨테이너 안 UID 1 의 호스트 UID>/CONTAINER_1000=<컨테이너 안 UID 1000 의 호스트 UID>

容器内的UID 0映射到用户本人,1开始是频段的开始。请小心偏移量。

编写storage.conf

/home/podster/.config/containers/storage.conf请制作。[storage]在章节中driverrunrootgraphroot必须有三个身高,graphroot/home/podster/.local/share/containers/storage需要。文件所有者是podster必须是。

每个用户的设置放在主页下面的.config/containers中。[storage]部分需要三个键。

编写registries.conf

/home/podster/.config/containers/registries.conf请制作。unqualified-search-registriesdocker.io必须包含,docker.io购买内部镜子mirror.labhub.local/dockerhub发送到[[registry]]必须有块。文件所有者podster必须是。

unqualified搜索列表是数组,镜像写入[[registry]]块。prefix和location是配对的。

用podman info进行验证

podster根据授权podman info执行后得到结果/root/pod/info.json请保存为。必须是JSON格式graphRoot值必须是5次指定的路径。

必须以该用户权限执行才能反映每个用户的设置。建议使用su -打开登录shell,以确保安全。

初始设置检查清单

/root/pod/checklist.txt请用以下5行组成。 SUBUID=yes/SUBGID=yes/ROOTLESS=<info 의 rootless 값 true/false>/GRAPHROOT=<info 의 graphRoot 값>/DRIVER=<info 의 스토리지 드라이버 이름>

请收集在前一步确认的实际值。路径绝对写成绝对路径。