18.9. Podman 컨테이너 내부에 컨테이너 빌드
Podman을 사용하여 컨테이너에서 컨테이너를 실행할 수 있습니다. 이 예에서는 Podman을 사용하여 이 컨테이너 내에서 다른 컨테이너를 빌드하고 실행하는 방법을 보여줍니다. 컨테이너는 간단한 텍스트 기반 게임인 "Moon-buggy"를 실행합니다.
사전 요구 사항
-
container-tools
모듈이 설치되어 있습니다. registry.redhat.io 레지스트리에 로그인되어 있습니다.
# podman login registry.redhat.io
절차
registry.redhat.io/rhel8/podman
이미지를 기반으로 하여 컨테이너를 실행합니다.# podman run --privileged --name podman_container -it \ registry.redhat.io/rhel8/podman /bin/bash
-
registry.redhat.io/rhel8/podman
이미지를 기반으로podman_container
라는 외부 컨테이너를 실행합니다. -
it
옵션은
컨테이너 내에서 대화형 bash 쉘을 실행하도록 지정합니다. -
privileged 옵션은
호스트에서 컨테이너를 분리하는 보안 기능을 비활성화합니다.
-
podman_container
컨테이너 내에Containerfile
을 생성합니다.# vi Containerfile FROM registry.access.redhat.com/ubi8/ubi RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm RUN yum -y install moon-buggy && yum clean all CMD ["/usr/bin/moon-buggy"]
Containerfile
의 명령은 다음과 같은 빌드 명령을 수행합니다.-
registry.access.redhat.com/ubi8/ubi
이미지에서 컨테이너를 빌드합니다. -
epel-release-latest-8.noarch.rpm
패키지를 설치합니다. -
north
-buggy
패키지를 설치합니다. - 컨테이너 명령을 설정합니다.
-
Containerfile
을 사용하여 galaxy-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/ubi8/ubi latest 4199acc83c6a 132seconds ago 213 MB
war
-buggy 컨테이너를 기반으로
새 컨테이너를 실행합니다.# podman run -it --name moon moon-buggy
선택 사항: bootstrap
-buggy 이미지에 태그를
지정합니다.# podman tag moon-buggy registry.example.com/moon-buggy
선택 사항: registries
-buggy
이미지를 레지스트리로 푸시합니다.# podman push registry.example.com/moon-buggy
추가 리소스