1.6. 设置 rootless 容器


以超级用户特权(root 用户)的用户身份运行容器工具(如 Podman、Skopeo 或 Buildah)是确保容器对系统上任何可用功能具有全部权限的最佳方法。但是,从 Red Hat Enterprise Linux 8.1 开始,通常会提供名为 "无根容器" 的功能,您可以以普通用户身份使用容器。

虽然容器引擎(如 Docker)可让您以普通(非 root)用户身份运行 Docker 命令,但执行这些请求的 Docker 守护进程还是以 root 用户身份运行。因此,普通用户可以通过其容器发出可能会损害系统的请求。通过设置 rootless 容器用户,系统管理员可以防止常规用户所做的潜在的损坏容器的活动,同时仍然允许这些用户在其自己的帐户下安全地运行大多数容器功能。

这个流程描述了如何设置您的系统,以非 root 用户(rootless)身份使用 Podman、Skopeo 和 Buildah 工具来与容器打交道。它还描述了您将遇到的一些限制,因为普通用户帐户对容器运行可能所需的所有操作系统功能没有全部的权限。

先决条件

  • 您需要成为 root 用户来设置 RHEL 系统,以允许非 root 用户帐户使用容器工具。

流程

  1. 安装 RHEL。
  2. 安装 podman 软件包:

    # yum install podman -y
    Copy to Clipboard Toggle word wrap
  3. 创建新的用户帐户:

    # useradd -c "Joe Jones" joe
    # passwd joe
    Copy to Clipboard Toggle word wrap
    • 用户会自动配置为能够使用 rootless Podman。
    • useradd 命令会在 /etc/subuid/etc/subgid 文件中自动设置可访问用户和组 ID 的范围。
    • 如果您手动更改 /etc/subuid/etc/subgid,则必须运行 podman system migrate 命令,以允许应用新的更改。
  4. 连接到用户:

    $ ssh joe@server.example.com
    Copy to Clipboard Toggle word wrap
    注意

    不要使用 susu - 命令,因为这些命令不会设置正确的环境变量。

  5. 拉取 registry.access.redhat.com/ubi8/ubi 容器镜像:

    $ podman pull registry.access.redhat.com/ubi8/ubi
    Copy to Clipboard Toggle word wrap
  6. 运行名为 myubi 的容器,并显示 OS 版本:

    $ podman run --rm --name=myubi registry.access.redhat.com/ubi8/ubi \
      cat /etc/os-release
    NAME="Red Hat Enterprise Linux"
    VERSION="8 (Plow)"
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat