18.8. 运行具有较少特权的 Podman
您可以运行两个嵌套的 Podman 容器,而无需使用 --privileged 选项。运行不带 --privileged 选项的容器是一个更安全的选择。
如果您要以尽可能安全的方式尝试不同版本的 Podman,这非常有用。
先决条件
-
container-tools元数据包已安装。
流程
运行两个嵌套的容器:
podman run --name=unprivileged_podman --security-opt label=disable \ --user podman --device /dev/fuse \ registry.access.redhat.com/ubi9/podman \ podman run ubi9 echo hello
$ podman run --name=unprivileged_podman --security-opt label=disable \ --user podman --device /dev/fuse \ registry.access.redhat.com/ubi9/podman \ podman run ubi9 echo helloCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
根据
registry.access.redhat.com/ubi9/podman镜像,运行名为unprivileged_podman的外部容器。 -
--security-opt label=disable选项禁用主机 Podman 上的 SELinux 隔离。SELinux 不允许容器化进程挂载在容器内运行所需的所有文件系统。 -
--user podman选项会自动使外部容器内的 Podman 在用户命名空间内运行。 -
--device /dev/fuse选项使用容器中的fuse-overlayfs软件包。此选项将/dev/fuse添加到外部容器中,因此容器中的 Podman 可以使用它。 -
运行
podman run ubi9 echo hello命令,以基于ubi9镜像创建内容器。 -
请注意,ubi9 短镜像名称被解析为别名。因此,会拉取
registry.access.redhat.com/ubi9:latest镜像。
验证
列出所有容器:
podman ps -a
$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a47b26290f43 podman run ubi9 e... 30 seconds ago Exited (0) 13 seconds ago unprivileged_podmanCopy to Clipboard Copied! Toggle word wrap Toggle overflow