7.18.13.2. 가상 머신용 컨테이너 디스크 준비

컨테이너 디스크를 가상 머신에서 사용하려면 가상 머신 이미지를 사용하여 빌드하고 컨테이너 레지스트리에 푸시해야 합니다. 그러면 데이터 볼륨을 사용하여 컨테이너 디스크를 PVC로 가져와서 가상 머신에 연결하거나 컨테이너 디스크를 임시 containerDisk 볼륨으로 가상 머신에 직접 연결할 수 있습니다.

컨테이너 디스크 내부의 디스크 이미지 크기는 컨테이너 디스크가 호스팅되는 레지스트리의 최대 계층 크기로 제한됩니다.

참고

Red Hat Quay의 경우 Red Hat Quay 를 처음 배포할 때 생성되는 YAML 구성 파일을 편집하여 최대 계층 크기를 변경할 수 있습니다.

사전 요구 사항

  • podman을 아직 설치하지 않은 경우 설치합니다.
  • 가상 머신 이미지는 QCOW2 또는 RAW 형식이어야 합니다.

절차

  1. Dockerfile을 생성하여 가상 머신 이미지를 컨테이너 이미지로 빌드합니다. 가상 머신 이미지는 UID가 107인 QEMU에 속하고 컨테이너 내부의 /disk/ 디렉터리에 있어야 합니다. 그런 다음 /disk/ 디렉터리에 대한 권한을 0440으로 설정해야 합니다.

    다음 예제에서는 Red Hat UBI(Universal Base Image)를 사용하여 첫 번째 단계에서 이러한 구성 변경을 처리하고, 두 번째 단계에서 최소 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로 교체하십시오.
  2. 컨테이너를 빌드하고 태그를 지정합니다.

    $ podman build -t <registry>/<container_disk_name>:latest .
  3. 컨테이너 이미지를 레지스트리에 푸시합니다.

    $ podman push <registry>/<container_disk_name>:latest

컨테이너 레지스트리에 TLS가 없는 경우 컨테이너 디스크를 영구 스토리지로 가져오기 전에 이를 비보안 레지스트리로 추가해야 합니다.