10.4. 构建镜像并将容器提取到镜像中
创建容器镜像后,您可以构建自定义镜像并将容器镜像提取到其中。为此,您必须在蓝图中指定 容器自定义,以及最终镜像的 容器名称。在构建过程中,会获取容器镜像,并放置在本地 Podman 容器存储中。
前提条件
- 
						您创建了容器镜像并将其推送到本地 quay.io容器 registry 实例。请参阅 将容器工件直接推送到容器注册中心。
- 您可以访问 registry.access.redhat.com。
- 
						您有一个容器 清单 ID。
- 
						已安装 qemu-kvm和qemu-img软件包。
流程
- 创建蓝图来构建 - qcow2镜像。蓝图必须包含 "" 自定义。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 推送蓝图: - composer-cli blueprints push blueprint-image.toml - # composer-cli blueprints push blueprint-image.toml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 构建容器镜像: - composer-cli start compose image qcow2 - # composer-cli start compose image qcow2- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - image 是蓝图名称。
- qcow2是镜像类型。注意- 构建镜像需要一些时间,因为它将检查 - quay.ioregistry 上的容器。
 
- 检查 Compose 的状态: - composer-cli compose status - # composer-cli compose status- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 完成的 compose 显示 FINISHED 状态值。要识别列表中您的 compose,请使用其 UUID。 
- compose 过程完成后,将生成的镜像文件下载到默认的下载位置: - composer-cli compose image UUID - # composer-cli compose image UUID- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 使用前面步骤中显示的 UUID 值替换 UUID。 - 您可以使用您创建和下载的 - qcow2镜像来创建虚拟机。
验证
					在您下载的结果 qcow2 镜像中执行以下步骤:
				
- 
						在虚拟机中启动 qcow2镜像。请参阅从 KVM 客户机镜像创建虚拟机。
- qemu向导将打开。登录到- qcow2镜像。- 
								输入用户名和密码。这些可以是您在 "customizations.user" 部分的 .qcow2蓝图中设置的用户名和密码,或是在引导时使用cloud-init创建的。
 
- 
								输入用户名和密码。这些可以是您在 "customizations.user" 部分的 
- 运行容器镜像,并在容器内打开 shell 提示符: - podman run -it registry.access.redhat.com/ubi9:8080/osbuild/repository /bin/bash/ - # podman run -it registry.access.redhat.com/ubi9:8080/osbuild/repository /bin/bash/- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - registry.access.redhat.com是目标 registry,- osbuild是机构,- repository则是在完成构建时推送容器的位置。
- 检查您添加到蓝图中的软件包是否可用: - type -a nginx - # type -a nginx- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出显示 - nginx软件包路径。