5.4. 컨테이너 빌드


애플리케이션 및 필수 종속 항목을 하나의 이식 가능한 단위로 패키징하려면 Red Hat Enterprise Linux에서 새 컨테이너를 빌드할 수 있습니다. Containerfile에 이미지 지침을 정의하여 소프트웨어 설치 및 구성을 자동화합니다.

사전 요구 사항

  1. container-tools meta-package가 설치되어 있습니다.

프로세스

  1. 컨테이너 툴 설치: RHEL 시스템에 필요한 컨테이너 도구가 설치되어 있는지 확인합니다. container-tools 모듈은 Buildah, Podman, Skopeo를 제공합니다.

    $ sudo dnf install container-tools
  2. Containerfile 생성: Containerfile은 컨테이너 이미지 빌드 지침을 정의합니다. 이 파일은 기본 이미지, 설치할 모든 소프트웨어, 적용할 구성 및 실행할 애플리케이션을 지정합니다. 예를 들면 다음과 같습니다.

    FROM registry.redhat.io/ubi10/ubi-minimal
    RUN microdnf -y update && microdnf -y install
    COPY index.html /var/www/html/
    EXPOSE 80
    CMD ["httpd", "-DFOREGROUND"]
  3. Buildah로 컨테이너 이미지 빌드: buildah bud (또는 podman build)를 사용하여 컨테이너 파일이 포함된 디렉터리로 이동한 후 이미지를 빌드합니다.

    $ cd /<path_to_container_file>
    
    $ buildah bud -t your_image_name:tag .
    • your_image_name: 이미지의 이름입니다.
    • tag: 이미지의 태그(예: latest, 1.0)입니다.
    • .: Containerfile이 현재 디렉터리에 있음을 나타냅니다.
  4. 컨테이너 실행: 이미지를 빌드한 후 podman run 명령을 사용하여 컨테이너에서 컨테이너를 실행할 수 있습니다.

    $ podman run -d -p 8080:80 my-web-app
    • -d: 분리된 모드에서 컨테이너를 실행합니다(백업에서).
    • -P 8080:80: 호스트의 포트 8080을 컨테이너 내부의 포트 80으로 매핑합니다.
    • my-web-app: 실행할 이미지의 이름입니다.

      컨테이너 빌드의 heredocs 구문

      Containerfile에서 heredoc 구문을 Red Hat Enterprise Linux 기본 이미지와 함께 사용하면 BuildKit 을 활성화할 수 있습니다. 명령에 heredoc 구문이 포함된 경우 Containerfile은 행에 동일한 명령의 일부로 heredoc 구분 기호만 포함될 때까지 다음 행을 고려합니다.

      heredocs 를 사용하여 Containerfile에서 RUN 또는 COPY 와 같은 명령어 내에 여러 줄 문자열을 직접 포함할 수 있습니다. RHEL 기반 이미지에 유용합니다. 간단한 작업을 위해 별도의 스크립트 파일을 생성하고 가독성과 유지 관리를 개선할 필요가 없기 때문입니다.

      예를 들어 일반적인 사용 사례는 단일 RUN 명령에서 여러 쉘 명령을 실행하여 단일 이미지 계층을 생성하여 &amp ;& \ 구문을 방지합니다.

# syntax=container/containerfile:1.4
FROM registry.redhat.io/ubi10/ubi-minimal
# Use a heredoc to perform a multi-line RUN command:
RUN <<EOF
microdnf -y update
microdnf -y install nginx
microdnf clean all
echo "Nginx installed and packages updated"
EOF
  • RUN <<EOF: <<여기doc의 시작과 EOF 는 사용자 정의 구분 기호입니다.
  • < EOF 와 최종 EOF 사이의 줄은 쉘에 의해 실행되는 단일 스크립트로 취급됩니다.
  • 전체 블록은 단일 RUN 명령이며 더 효율적이고 읽기 쉽습니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동