2.7. 컨테이너 이미지 수정
Red Hat은 Red Hat Container Catalog(registry.redhat.io
)를 통해 사전 빌드된 컨테이너 이미지 세트를 제공합니다. 이러한 이미지를 수정하고 추가 레이어를 추가할 수 있습니다. 이는 인증된 타사 드라이버에 RPM을 컨테이너에 추가하는 데 유용합니다.
수정된 OpenStack Platform 컨테이너 이미지를 지속적으로 지원하려면 결과 이미지가 "Red Hat Container Support Policy" 를 준수하도록 합니다.
이 예에서는 최신 openstack-keystone
이미지를 사용자 지정하는 방법을 보여줍니다. 그러나 이러한 지침은 다른 이미지에도 적용할 수 있습니다.
절차
수정하려는 이미지를 가져옵니다. 예를 들어
openstack-keystone
이미지의 경우 다음을 실행합니다.$ sudo docker pull registry.redhat.io/rhosp13/openstack-keystone:latest
원본 이미지에서 기본 사용자를 확인합니다. 예를 들어
openstack-keystone
이미지의 경우 다음을 실행합니다.$ sudo docker run -it registry.redhat.io/rhosp13/openstack-keystone:latest whoami root
참고openstack-keystone
이미지는root
를 기본 사용자로 사용합니다. 다른 이미지는 특정 사용자를 사용합니다. 예를 들어openstack-glance-api
는 기본 사용자에glance
를 사용합니다.Dockerfile
을 생성하여 기존 컨테이너 이미지에서 추가 계층을 빌드합니다. 다음은 Container Catalog에서 최신 OpenStack Identity(keystone) 이미지를 가져와서 이미지에 사용자 지정 RPM 파일을 설치하는 예입니다.FROM registry.redhat.io/rhosp13/openstack-keystone MAINTAINER Acme LABEL name="rhosp13/openstack-keystone-acme" vendor="Acme" version="2.1" release="1" # switch to root and install a custom RPM, etc. USER root COPY custom.rpm /tmp RUN rpm -ivh /tmp/custom.rpm # switch the container back to the default user USER root
새 이미지를 빌드하고 태그를 지정합니다. 예를 들어
/home/stack/keystone
디렉터리에 저장된 로컬Dockerfile
로 빌드하고 언더클라우드의 로컬 레지스트리에 태그를 지정하려면 다음을 수행합니다.$ docker build /home/stack/keystone -t "192.168.24.1:8787/rhosp13/openstack-keystone-acme:rev1"
결과 이미지를 언더클라우드의 로컬 레지스트리로 푸시합니다.
$ docker push 192.168.24.1:8787/rhosp13/openstack-keystone-acme:rev1
-
오버클라우드 컨테이너 이미지 환경 파일(일반적으로
overcloud_images.yaml
)을 편집하고 사용자 정의 컨테이너 이미지를 사용하도록 적절한 매개변수를 변경합니다.
Container Catalog는 완전한 소프트웨어 스택을 사용하여 컨테이너 이미지를 게시합니다. Container Catalog에서 업데이트 및 보안 수정으로 컨테이너 이미지를 릴리스하면 기존 사용자 정의 컨테이너에 이러한 업데이트가 포함되지 않으므로 카탈로그의 새 이미지 버전을 사용하여 다시 빌드해야 합니다.