4.4. 使用 bootc-image-builder 创建 QEMU 磁盘镜像


对于您要在其上运行命令的架构,将 RHEL bootc 镜像构建到 QEMU (QCOW2)镜像中。

RHEL 基础镜像不包括默认用户。另外,您可以使用 --config 选项注入用户配置,以运行 bootc-image-builder 容器。或者,您可以使用 cloud-init 配置基础镜像,以便在第一次引导时注入用户和 SSH 密钥。请参阅 用户和组配置 - 使用 cloud-init 注入用户和 SSH 密钥

先决条件

  • 您已在主机机器上安装了 Podman。
  • 您有运行 bootc-image-builder 工具的 root 访问权限,并在 --privileged 模式下运行容器,以构建镜像。
  • 在系统根容器注册中心中有基础 bootc 容器镜像。

流程

  1. 可选:创建一个 config.toml 来配置用户访问,例如:

    [[customizations.user]]
    name = "user"
    password = "pass"
    key = "ssh-rsa AAA ... user@email.com"
    groups = ["wheel"]
  2. 运行 bootc-image-builder。另外,如果您想要使用用户访问配置,请将 config.toml 作为参数传递。

    1. 以下示例创建了一个公共 QEMU 磁盘镜像(QCOW2)。要构建公共镜像,您在远程、可公开访问的注册中心(如 registry.redhat.io/rhel10/bootc-image-builder:latest)中有一个可用的容器镜像。镜像可供下载和使用,而无需特殊凭据。

      $ sudo podman run \
          --rm \
          --privileged \
          --pull=newer \
          --security-opt label=type:unconfined_t \
          -v ./config.toml:/config.toml:ro \
          -v ./output:/output \
          registry.redhat.io/rhel10/bootc-image-builder:latest \
          --type qcow2 \
          --config /config.toml \
        quay.io/<namespace>/<image>:<tag>
    2. 这个示例从本地容器创建一个私有 QEMU 磁盘镜像(QCOW2)。要构建私有镜像,则必须在本地机器上有一个容器镜像,该容器镜像在公共注册中心中不提供。本地镜像可以是一个您使用 Containerfile 构建的镜像、一个您从私有的、访问控制的、需要登录的注册中心拉取的镜像,或一个从 tar 文件加载的镜像。bootc-image-builder 从本地 Podman /var/lib/containers/storage 存储中查找和使用源镜像,该镜像被挂载到构建器容器中。

      $ sudo podman run \
          --rm \
          -it \
          --privileged \
          --pull=newer \
          --security-opt label=type:unconfined_t \
          -v ./config.toml:/config.toml:ro \
          -v ./output:/output \
          -v /var/lib/containers/storage:/var/lib/containers/storage \
          registry.redhat.io/rhel10/bootc-image-builder:latest \
          --type qcow2 \
          --config /config.toml \
          quay.io/<namespace>/<image>:<tag>

      您可以在 output 文件夹中找到 .qcow2 镜像。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部