13장. 애플리케이션을 사용하여 컨테이너 생성
이 섹션에서는 로컬에서 빌드된 애플리케이션에서 docker 형식 컨테이너 이미지를 생성하는 방법을 설명합니다. 배포에 오케스트레이션을 사용하려는 경우 컨테이너로 애플리케이션을 사용할 수 있도록 하는 것이 좋습니다. 또는 종속 항목의 충돌을 효과적으로 컨테이너화합니다.
사전 요구 사항
- 컨테이너 이해
- 소스에서 로컬로 빌드된 애플리케이션
절차
사용할 기본 이미지를 결정합니다.
참고Red Hat Enterprise Linux를 기반으로 사용하는 기본 이미지로 시작하는 것이 좋습니다. 자세한 내용은 Red Hat Container Catalog의 기본 이미지를 참조하십시오.
- 작업 공간 디렉터리를 생성합니다.
- 애플리케이션의 모든 필수 파일이 포함된 디렉터리로 애플리케이션을 준비합니다. 이 디렉터리를 작업 공간 디렉터리에 배치합니다.
컨테이너를 생성하는 데 필요한 단계를 설명하는 Dockerfile을 작성합니다.
콘텐츠가 포함된 Dockerfile을 생성하는 방법에 대한 자세한 내용은 Dockerfile 참조를 참조하고, 실행할 기본 명령을 설정하며, 필요한 포트 및 기타 기능을 엽니다.
이 예에서는
my-program/
디렉터리가 포함된 최소 Dockerfile을 보여줍니다.FROM registry.access.redhat.com/rhel7 USER root ADD my-program/ .
이 Dockerfile을 작업 공간 디렉터리에 배치합니다.
Dockerfile에서 컨테이너 이미지를 빌드합니다.
# docker build . (...) Successfully built container-id
이 단계에서 새로 생성된 컨테이너 이미지의 container-id 를 기록해 둡니다.
이미지에 태그를 추가하여 컨테이너 이미지를 저장할 레지스트리를 식별합니다. 컨테이너 시작하기 - 이미지 태그 지정을 참조하십시오.
# docker tag container-id registry:port/name
container-id 를 이전 단계의 출력에 표시된 값으로 교체합니다.
이미지를 푸시할 레지스트리의 주소, 포트 를 레지스트리의 포트(필요하지 않은 경우)로 바꾸고 이미지 이름으로 이름을 바꿉니다.
예를 들어, myimage 라는 이미지가 있는 로컬 시스템에서
docker-distribution
서비스를 사용하여 레지스트리를 실행하는 경우 localhost:5000/myimage 태그를 사용하면 해당 이미지를 레지스트리로 내보낼 수 있습니다.나중에 해당 레지스트리에서 이미지를 가져올 수 있도록 이미지를 레지스트리로 푸시합니다.
# docker push registry:port/name
태그 부분을 이전 단계에서 사용한 것과 동일한 값으로 바꿉니다.
자체 Docker 레지스트리를 실행하려면 컨테이너 시작하기 - Docker 레지스트리 작업을 참조하십시오.
추가 리소스
- OpenShift Container Platform - 개발: 이미지
- Red Hat Enterprise Linux Atomic Host - 컨테이너 개발을 위한 권장 사례
- Dockerfile 참조
- Docker 문서 - 시작, 파트 2 컨테이너
- Red Hat Enterprise Linux Atomic Host - 컨테이너 시작하기
- Red Hat Container Catalog 목록 - 기본 이미지