16.9. Podman 컨테이너 내부에 컨테이너 빌드
Podman을 사용하여 컨테이너에서 컨테이너를 실행할 수 있습니다. 이 예에서는 Podman을 사용하여 이 컨테이너 내에서 다른 컨테이너를 빌드하고 실행하는 방법을 보여줍니다. 컨테이너는 간단한 텍스트 기반 게임인 "Moon-buggy"를 실행합니다.
사전 요구 사항
-
container-tools
meta-package가 설치되어 있습니다. registry.redhat.io 레지스트리에 로그인되어 있습니다.
podman login registry.redhat.io
# podman login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
프로세스
registry.redhat.io/rhel10/podman
이미지를 기반으로 컨테이너를 실행합니다.podman run --privileged --name podman_container -it \ registry.redhat.io/rhel10/podman /bin/bash
# podman run --privileged --name podman_container -it \ registry.redhat.io/rhel10/podman /bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
registry.redhat.io/rhel10/podman
이미지를 기반으로podman_container
라는 외부 컨테이너를 실행합니다. -
--it
옵션은 컨테이너 내에서 대화형 bash 쉘을 실행하도록 지정합니다. -
--privileged
옵션은 호스트에서 컨테이너를 격리하는 보안 기능을 비활성화합니다.
-
podman_container
컨테이너 내부에Containerfile
을 생성합니다.vi Containerfile
# vi Containerfile FROM registry.access.redhat.com/ubi10/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"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Containerfile
의 명령은 다음과 같은 빌드 명령을 실행합니다.-
registry.access.redhat.com/ubi10/ubi
이미지에서 컨테이너를 빌드합니다. -
epel-release-latest-8.noarch.rpm
패키지를 설치합니다. -
Moon-buggy
패키지를 설치합니다. - 컨테이너 명령을 설정합니다.
-
Containerfile
:을 사용하여 ship-buggy
라는 새 컨테이너 이미지를 빌드합니다.podman build -t moon-buggy .
# podman build -t moon-buggy .
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 모든 이미지를 나열합니다.
podman images
# podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/moon-buggy latest c97c58abb564 13 seconds ago 1.67 GB registry.access.redhat.com/ubi10/ubi latest 4199acc83c6a 132seconds ago 213 MB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ship
-buggy 컨테이너를 기반으로
새 컨테이너를 실행합니다.podman run -it --name moon moon-buggy
# podman run -it --name moon moon-buggy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
Moon-buggy
이미지에 태그를 지정합니다.podman tag moon-buggy registry.example.com/moon-buggy
# podman tag moon-buggy registry.example.com/moon-buggy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
Moon-buggy
이미지를 레지스트리로 푸시합니다.podman push registry.example.com/moon-buggy
# podman push registry.example.com/moon-buggy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow