7.18.13.2. 为虚拟机准备容器磁盘
您必须使用虚拟机镜像构建容器磁盘,并将其推送到容器 registry,然后才能用于虚拟机。然后,您可以使用数据卷将容器磁盘导入到 PVC 中,并将其附加到虚拟机,或者将容器磁盘作为临时 containerDisk
卷直接附加到虚拟机。
容器磁盘中磁盘镜像的大小受托管容器磁盘的 registry 的最大层大小的限制。
注意
对于 Red Hat Quay,您可以通过编辑首次部署 Red Hat Quay 时创建的 YAML 配置文件来更改最大层大小。
先决条件
-
如果还没有安装,安装
podman
: - 虚拟机镜像必须是 QCOW2 或 RAW 格式。
流程
创建一个 Dockerfile 以将虚拟机镜像构建到容器镜像中。虚拟机镜像必须属于 QEMU,其 UID 为
107
,并放置在容器的/disk/
目录中。/disk/
目录的权限必须设为0440
。以下示例在第一阶段使用 Red Hat Universal Base Image(UBI)来处理这些配置更改,并使用第二阶段中的最小
scratch
镜像存储结果:$ cat > Dockerfile << EOF FROM registry.access.redhat.com/ubi8/ubi:latest AS builder ADD --chown=107:107 <vm_image>.qcow2 /disk/ 1 RUN chmod 0440 /disk/* FROM scratch COPY --from=builder /disk/* /disk/ EOF
- 1
- 其中,<vm_image> 是 QCOW2 或 RAW 格式的虚拟机镜像。
要使用远程虚拟机镜像,将<vm_image>.qcow2
替换为远程镜像的完整 url。
构建和标记容器:
$ podman build -t <registry>/<container_disk_name>:latest .
将容器镜像推送到 registry:
$ podman push <registry>/<container_disk_name>:latest
如果容器镜像敞开没有 TLS,您必须将其添加为一个不安全的容器镜像仓库,然后才能将容器磁盘导入持久性存储。