18.9. Podman 컨테이너 내부에 컨테이너 빌드
Podman을 사용하여 컨테이너에서 컨테이너를 실행할 수 있습니다. 이 예에서는 Podman을 사용하여 이 컨테이너 내에서 다른 컨테이너를 빌드하고 실행하는 방법을 보여줍니다. 컨테이너는 간단한 텍스트 기반 게임인 "Moon-buggy"를 실행합니다.
사전 요구 사항
-
container-tools
meta-package가 설치되어 있습니다. registry.redhat.io 레지스트리에 로그인되어 있습니다.
# podman login registry.redhat.io
절차
registry.redhat.io/rhel9/podman
이미지를 기반으로 컨테이너를 실행합니다.# podman run --privileged --name podman_container -it \ registry.redhat.io/rhel9/podman /bin/bash
-
registry.redhat.io/rhel9/podman
이미지를 기반으로podman_container
라는 외부 컨테이너를 실행합니다. -
--it
옵션은 컨테이너 내에서 대화형 bash 쉘을 실행하도록 지정합니다. -
privileged 옵션은
호스트에서 컨테이너를 분리하는 보안 기능을 비활성화합니다.
-
podman_container
컨테이너 내부에Containerfile
을 생성합니다.# vi Containerfile FROM registry.access.redhat.com/ubi9/ubi RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm RUN dnf -y install moon-buggy && dnf clean all CMD ["/usr/bin/moon-buggy"]
Containerfile
의 명령으로 인해 다음 build 명령이 다음과 같습니다.-
registry.access.redhat.com/ubi9/ubi
이미지에서 컨테이너를 빌드합니다. -
epel-release-latest-8.noarch.rpm
패키지를 설치합니다. -
month
-buggy
패키지를 설치합니다. - 컨테이너 명령을 설정합니다.
-
Containerfile
을 사용하여 China-buggy
라는 새 컨테이너 이미지를 빌드합니다.# podman build -t moon-buggy .
선택 사항: 모든 이미지를 나열합니다.
# podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/moon-buggy latest c97c58abb564 13 seconds ago 1.67 GB registry.access.redhat.com/ubi9/ubi latest 4199acc83c6a 132seconds ago 213 MB
month
-buggy 컨테이너를 기반으로
새 컨테이너를 실행합니다.# podman run -it --name moon moon-buggy
선택 사항: month
-buggy
이미지에 태그를 지정합니다.# podman tag moon-buggy registry.example.com/moon-buggy
선택 사항:
달-buggy
이미지를 레지스트리로 푸시합니다.# podman push registry.example.com/moon-buggy
추가 리소스