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/ubi8/podman \
      podman run ubi8 echo hello
  • 根据 registry.access.redhat.com/ubi8/podman 镜像,运行名为 unprivileged_podman 的外部容器。
  • --security-opt label=disable 选项禁用主机 Podman 上的 SELinux 隔离。SELinux 不允许容器化进程挂载在容器内运行所需的所有文件系统。
  • --user podman 选项会自动使外部容器内的 Podman 在用户命名空间内运行。
  • --device /dev/fuse 选项使用容器中的 fuse-overlayfs 软件包。此选项将 /dev/fuse 添加到外部容器中,因此容器中的 Podman 可以使用它。
  • 运行 podman run ubi8 echo hello 命令,来创建基于 ubi8 镜像的内部容器。
  • 请注意,ubi8 短镜像名称被解析为别名。因此,拉取 registry.access.redhat.com/ubi8:latest 镜像。

验证

  • 列出所有容器:

    $ podman ps -a
    CONTAINER ID  IMAGE                            COMMAND               CREATED            STATUS                          PORTS   NAMES
    a47b26290f43               podman run ubi8 e...  30 seconds ago     Exited (0) 13 seconds ago               unprivileged_podman
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.