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.tomlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 构建容器镜像:
composer-cli start compose image qcow2
# composer-cli start compose image qcow2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - image 是蓝图名称。
qcow2是镜像类型。注意构建镜像需要一些时间,因为它将检查
quay.ioregistry 上的容器。
检查 Compose 的状态:
composer-cli compose status
# composer-cli compose statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 完成的 compose 显示 FINISHED 状态值。要识别列表中您的 compose,请使用其 UUID。
compose 过程完成后,将生成的镜像文件下载到默认的下载位置:
composer-cli compose image UUID
# composer-cli compose image UUIDCopy 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 nginxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示
nginx软件包路径。