5.7. 使用 bootc-image-builder 创建 AMI 镜像,并将其上传到 AWS


使用 bootc-image-builder 工具从 Red Hat Enterprise Linux bootc 镜像生成 Amazon Machine Image (AMI)。这可让容器原生操作系统部署为 Amazon Web Services (AWS)中的标准 EC2 实例。

  • 如果使用 registry 中的容器镜像,如 registry.redhat.io/rhel10/bootc-image-builder:latest,您必须挂载一个本地存储。
  • 如果使用本地构建的容器镜像,则必须包含 -v /var/lib/containers/storage:/var/lib/containers/storage 参数。

先决条件

  • 您已在主机机器上安装了 Podman。
  • AWS 帐户中有一个现有的 AWS S3 存储桶。
  • 您有运行 bootc-image-builder 工具的 root 访问权限,并在 --privileged 模式下运行容器,以构建镜像。
  • 您已在帐户中配置了 vmimport 服务角色,来将 AMI 导入到 AWS 帐户中。

流程

  1. 从 bootc 镜像创建一个磁盘镜像。

    • 在 Containerfile 中配置用户详情。确保为它分配 sudo 访问权限。
    • 使用 Containerfile 配置中的用户构建一个自定义操作系统镜像。它会创建一个默认用户,而无需密码 sudo 访问权限。
  2. 可选:使用 cloud-init 配置机器镜像。请参阅 RHEL 的镜像模式中管理文件系统。以下是一个示例:

    FROM quay.io/<namespace>/<image>:latest
    
    RUN dnf -y install cloud-init && \
        ln -s ../cloud-init.target /usr/lib/systemd/system/default.target.wants && \
        rm -rf /var/{cache,log} /var/lib/{dnf,rhsm}
    注意

    您还可以使用 cloud-init ,使用实例元数据添加用户和其他配置。

  3. 构建 bootc 镜像。例如,要将镜像部署到 x86_64 AWS 机器,请使用以下命令:

    $ podman build -t quay.io/<namespace>/<image>:<tag> .
    $ podman push quay.io/<namespace>/<image>:<tag> .
  4. 在运行容器前,初始化 输出目录。使用 -p 参数来确保如果目录已存在,命令不会失败:

    $ mkdir -p ./output
  5. 使用 bootc-image-builder 工具从 bootc 容器镜像创建一个公共 AMI 镜像。镜像必须可从注册中心访问,如 registry.redhat.io/rhel10/bootc-image-builder:latest

    $ sudo podman run \
      --rm \
      --it \
      --privileged \
      --pull=newer \
      -v ./config.toml:/config.toml \
      -v /var/home/<user>/.aws:/root/.aws \
      --env AWS_PROFILE=default \
      registry.redhat.io/rhel10/bootc-image-builder:latest \
      --type ami \
      --config /config.toml \
      --aws-ami-name rhel-bootc-x86 \
      --aws-bucket rhel-bootc-bucket \
      --aws-region us-east-1 \
    quay.io/<namespace>/<image>:<tag>

    以下标记必须一起指定。如果没有指定任何标记,AMI 被导出到 output 目录中。

    • --AWS-ami-name - AWS 中 AMI 镜像的名称
    • --AWS-bucket - 创建 AMI 时中间存储的目标 S3 存储桶名称
    • --AWS-region - 用于AWS 上传的目标区域

      bootc-image-builder 工具使用 AWS 凭证在您的 AWS S3 存储桶中构建、上传和注册 AMI 镜像。

后续步骤

故障排除

如果您在为 AWS 镜像配置要求时遇到问题,请参阅以下文档:

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部