Container Registry 정보 확인 및 관리
    • PDF

    Container Registry 정보 확인 및 관리

    • PDF

    Article Summary

    Classic/VPC 환경에서 이용 가능합니다.

    Container Registry에 생성한 레지스트리와 레지스트리에 등록(Push)한 컨테이너 이미지들을 확인할 수 있으며, 로컬에 저장된 도커 컨테이너 이미지를 Container Registry의 레지스트리에 업로드(Push)하거나 레지스트리에 있는 도커 컨테이너 이미지를 로컬로 다운로드(Pull)할 수 있습니다. 또한 운영 중인 레지스트리 및 도커 컨테이너 이미지를 사용자 환경에 맞게 설정 관리할 수 있습니다.

    Container Registry 화면

    Container Registry 이용을 위한 기본적인 설명은 다음과 같습니다.

    containerregistry-screen_ko

    영역설명
    ① 메뉴 이름현재 확인 중인 메뉴 이름과 경로, 운영 중인 레지스트리 개수
    ② 기본 기능레지스트리 생성, Container Registry 상세 정보 확인
    ③ 생성 후 기능운영 중인 레지스트리의 삭제
    ④ Container Registry 목록운영 중인 레지스트리 목록 및 정보 확인

    레지스트리 목록 화면

    생성하여 운영 중인 레지스트리 목록에서 레지스트리별 정보를 확인할 수 있습니다. 확인하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.

    2. 생성한 Container Registry 목록이 나타나면 요약 정보를 확인하거나 레지스트리를 클릭하여 상세 정보를 확인해 주십시오.

      • 레지스트리 이름: Container Registry 내 생성된 레지스트리 이름
      • 버킷 이름: 도커 컨테이너 이미지를 저장할 Object Storage의 버킷 이름
      • 사용량: 도커 컨테이너 이미지가 저장된 버킷의 사용량
      • 상태: 레지스트리의 현재 상태
      • 이미지 리스트: 생성한 레지스트리에 등록된 도커 컨테이너 이미지 목록 화면으로 이동
      • 접근 명령어: 레지스트리에 접속(login) 및 도커 컨테이너 이미지 업로드(Push)/다운로드(Pull)를 하기 위한 명령어 확인
      • Configuration: 퍼블릭 엔드포인트(Public Endpoint) 사용업로드된 도커 컨테이너 이미지 보안 취약점 스캔(San on Push) 여부 설정
      • Public Endpoint: 퍼블릭 엔드포인트(Public Endpoint) 정보 (<registry-name>.<region-code>.ncr.ntruss.com)
      • Private Endpoint: 프라이빗 엔드포인드(Private Endpoint) 정보 (<random-name>.<region-code>.private-ncr.ntruss.com)
      • 오래된 태그 정리: 도커 컨테이너 이미지에 적용되어 있는 태그 값을 제거
      • 생성 일시: 레지스트리를 생성한 일시

    레지스트리 퍼블릭 엔드포인트 활성/비활성화

    퍼블릭 엔드포인트는 외부 네트워크(인터넷) 이용이 가능한 환경에서 네이버 클라우드 플랫폼의 Container Registry를 이용하고자 할 때 사용할 수 있는 엔드포인트입니다. 필요한 경우에 이 기능을 비활성화하여 컨테이너 레지스트리를 공개하지 않도록 설정할 수 있습니다.

    참고

    퍼블릭 엔드포인트가 비활성화 상태여도 프라이빗 레지스트리는 네이버 클라우드 플랫폼의 네트워크 환경 내에서 이용할 수 있습니다.

    퍼블릭 엔드포인트(Public Endpoint) 활성화 또는 비활성화하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
    2. Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    3. 목록에서 대상 레지스트리 이름을 클릭해 주십시오.
    4. 상세 정보 영역에서 Configuration에 있는 i-containerregistry-detailset을 클릭해 주십시오.
    5. Configuration 설정 팝업창에서 Public Endpoint 항목의 활성/비활성 토글 버튼을 클릭해 사용 여부를 설정한 후 [확인] 버튼을 클릭해 주십시오.

    퍼블릭 레지스트리 활성/비활성화

    퍼블릭 레지스트리는 권한이 없는 누구든지 해당 레지스트리로부터 이미지를 다운로드(Pull)할 수 있도록 설정하는 기능입니다. 기본적으로 네이버 클라우드 플랫폼의 컨테이너 레지스트리는 권한이 있는 사용자만 이미지 다운로드(Pull)를 수행할 수 있습니다. 필요한 경우 퍼블릭 레지스트리를 활성화하여 누구든지 이미지를 다운로드(Pull)할 수 있도록 설정할 수 있습니다.

    참고

    퍼블릭 레지스트리가 활성화 상태여도 권한이 없는 사용자는 이미지 업로드(Push)를 수행할 수 없습니다.

    퍼블릭 레지스트리(Public Registry) 활성화 또는 비활성화하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
    2. Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    3. 목록에서 대상 레지스트리 이름을 클릭해 주십시오.
    4. 상세 정보 영역에서 Configuration에 있는 i-containerregistry-detailset을 클릭해 주십시오.
    5. Configuration 설정 팝업창에서 Public Registry 항목의 활성/비활성 토글 버튼을 클릭해 사용 여부를 설정한 후 [확인] 버튼을 클릭해 주십시오.

    레지스트리 삭제

    생성하여 운영 중인 레지스트리를 삭제할 수 있습니다.

    삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    2. 삭제할 레지스트리를 클릭한 다음 [삭제] 버튼을 클릭해 주십시오.
    3. 레지스트리 삭제 팝업 창이 나타나면 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.
    참고

    레지스트리를 삭제하더라도 Object Storage에 저장된 도커 컨테이너 이미지는 삭제되지 않습니다. 사전에 모든 이미지를 삭제한 후 레지스트리를 삭제해 주십시오. (권장)

    서브 계정 정책 관리

    네이버 클라우드 플랫폼의 Sub Account 서비스를 통해 서브 계정에 Container Registry 권한을 할당할 수 있습니다. 서브 계정에 할당할 수 있는 Container Registry 정책은 아래와 같습니다.

    • Container Registry 관리자(NCP_CONTAINER_REGISTRY_MANAGER): 레지스트리 생성/삭제, 도커 컨테이너 이미지 업로드(Push)/다운로드(Pull)/삭제
    • Container Registry 뷰어(NCP_CONTAINER_REGISTRY_VIEWER): 레지스트리 조회, 도커 컨테이너 이미지 다운로드(Pull)

    Docker CLI 환경에서, 서브 계정으로 레지스트리에 로그인하는 경우의 사용 아이디는 서브 계정의 API 인증 키입니다. 서브 계정의 접근 유형(Access Type)의 API Gateway Access가 활성화된 경우, API 인증 키는 네이버 클라우드 플랫폼 콘솔의 Services > Management & Governance > Sub Account 메뉴에서, 해당 서브 계정을 선택한 후 표시되는 상세 정보의 [Access Key] 탭에서 확인 및 관리할 수 있습니다.

    레지스트리 로그인

    Docker CLI에서 로그인

    네이버 클라우드 플랫폼의 Container Registry를 이용하기 위해서는 Docker Engine 1.10 이상의 버전이 필요합니다.
    해당 버전이 설치되어 있는 경우 터미널에서 Docker CLI를 이용하여 엔드포인트에 로그인할 수 있습니다.

    Docker CLI를 이용하여 엔드포인트에 로그인하는 방법은 다음과 같습니다.

    1. 레지스트리에 접속하기 위한 엔드포인트, API 인증 키의 Access Key Id, Secret Key 정보를 확인해 주십시오.

      • 엔드포인트: 레지스트리의 상세 정보 화면에서 Public Endpoint 또는 Private Endpoint 확인
        • 퍼블릭 엔드포인트: <registry-name>.<region-code>.ncr.ntruss.com
        • 프라이빗 엔드포인트: <random-id>.<region-code>.private-ncr.ntruss.com
      • 계정 아이디: API 인증 키의 Access Key Id 확인
      • 계정 비밀번호: API 인증 키의 Secret Key 확인
    2. 터미널에서 접근 명령어를 입력하여 레지스트리에 접속해 주십시오.

      • 위 1에서 확인한 값을 <access-key-id>, <registry-name>, <region-code>, <secret-key>에 입력해 주십시오.
      • 레지스트리의 상세 정보 화면의 접근 명령어 항목에서도 명령어를 확인할 수 있습니다. 이용 가이드 버튼을 클릭하면 로그인 외 업로드(Push), 다운로드(Pull) 명령어도 확인할 수 있습니다.
    $ docker login -u <access-key-id> <registry-name>.<region-code>.ncr.ntruss.com
    Password: <secret-key>
    Login Succeeded
    

    로그인을 성공하면 위 예시와 같이 터미널 창에 'Login Succeeded' 메시지가 출력됩니다.

    Kubernetes에서 로그인

    Kubernetes에서 엔드포인트에 로그인하는 방법은 다음과 같습니다.

    여기서는 kubectl 명령어를 이용하여 regcred라는 이름의 secret을 생성하는 방법을 예제로 설명합니다.

    1. 레지스트리에 접속하기 위한 엔드포인트, API 인증 키의 Access Key Id, Secret Key 정보를 확인해 주십시오.

      • 엔드포인트: 레지스트리의 상세 정보 화면에서 Public Endpoint 또는 Private Endpoint 확인
        • 퍼블릭 엔드포인트: <registry-name>.<region-code>.ncr.ntruss.com
        • 프라이빗 엔드포인트: <random-id>.<region-code>.private-ncr.ntruss.com
      • 계정 아이디: API 인증 키의 Access Key Id 확인
      • 계정 비밀번호: API 인증 키의 Secret Key 확인
      • 사용자 이메일: 사용자 계정 이메일 주소
    2. 터미널에서 kubectl 명령어를 이용하여 regcred라는 이름의 secret을 생성해 주십시오.

      • 위 1에서 확인한 값을 <registry-end-point>, <registry-end-point>, <secret-key>, <your-email>에 입력해 주십시오.
    $ kubectl create secret docker-registry regcred --docker-server=<registry-end-point> --docker-username=<access-key-id> --docker-password=<secret-key> --docker-email=<your-email>
    
    1. 네이버 클라우드 플랫폼에 생성한 레지스트리의 이미지를 다운로드(Pull)할 수 있도록 아래 예시와 같이 template의 spec 영역의 imagePullSecrets에 앞서 생성한 secret 이름을 입력해 저장해 주십시오.

      • Example: MySQL YAML
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: test-mysql
         labels:
           name: test-mysql
       spec:
         replicas: 1
         selector:
           matchLabels:
             name: test-mysql
         template:
           metadata:
             labels:
               name: test-mysql
           spec:
             imagePullSecrets:
             - name: regcred
             containers:
             - name: test-mysql
               image: <registry-name>.ncr.gov-ntruss.com/mysql:5.7.21
               env:
               - name: MYSQL_ROOT_PASSWORD
                 value: "1234"
      

    도커 컨테이너 이미지 업로드(Push)

    docker login 명령어를 이용하여 특정 레지스트리의 엔드포인트에 로그인한 경우 해당 레지스트리에 도커 컨테이너 이미지를 업로드(Push)할 수 있습니다.

    참고

    도커 컨테이너 이미지를 레지스트리에 업로드(Push)하기 위해서는 해당 컨테이너를 도커 컨테이너 이미지를 생성(docker commit)하고, 생성한 이미지에 태그(docker tag) 적용하는 작업을 먼저 진행해야 합니다. 자세한 내용은 Docker 홈페이지의 사용 가이드 및 관련 문서를 참조해 주십시오.

    레지스트리에 도커 컨테이너 이미지를 업로드(Push)하는 방법은 다음과 같습니다.

    여기서는 jenkins:latest 도커 컨테이너 이미지를 레지스트리에 업로드(Push)하는 방법을 예제로 설명합니다.

    1. Docker CLI 환경에서 docker login 명령어를 사용하여 대상 레지스트리에 로그인해 주십시오.
    $ docker login -u <access-key-id> <registry-name>.<region-code>.ncr.ntruss.com
    Password: <secret-key>
    Login Succeeded
    
    1. 아래 예시와 같이 docker push 명령어를 사용하여 실행해 주십시오.
      • 레지스트리의 상세 정보 화면의 접근 명령어 항목에 있는 이용 가이드 버튼을 클릭하면 업로드(Push) 명령어 예시 및 설명을 확인할 수 있습니다.
    $ docker push <registry-name>.<region-code>.ncr.ntruss.com/jenkins
    The push refers to repository [mybear.kr.beta-ncr.ntruss.com/jenkins]
    0577e068c587: Layer already exists
    b1891bf16fa7: Layer already exists
    37c1d818eb0b: Layer already exists
    d51e4482f53a: Layer already exists
    ceed640cbb93: Layer already exists
    9c2e8b91bfa8: Layer already exists
    c477b6c8ca45: Layer already exists
    fa0c3f992cbd: Layer already exists
    ce6466f43b11: Layer already exists
    719d45669b35: Layer already exists
    3b10514a95be: Layer already exists
    latest: digest: sha256:0de43cde2c4b864a8e4a84bbd9958e47c5d851319f118203303d040b0a74f159 size: 4501
    
    참고

    서브 계정으로 로그인한 경우, 해당 서브 계정의 Sub Account 정책에 관리자(매니저, Change(Full)) 권한이 있어야 해당 작업이 허용됩니다.

    도커 컨테이너 이미지 다운로드(Pull)

    docker login 명령어를 이용하여 특정 레지스트리의 엔드포인트에 로그인한 경우 해당 레지스트리에 저장된 도커 컨테이너 이미지를 다운로드(Pull)할 수 있습니다.

    레지스트리에 도커 컨테이너 이미지를 다운로드(Pull)하는 방법은 다음과 같습니다.

    여기서는 레지스트리에 저장된 jenkins:latest 도커 컨테이너 이미지를 다운로드(Pull)하는 방법을 예제로 설명합니다.

    1. Docker CLI 환경에서 docker login 명령어를 사용하여 대상 레지스트리에 로그인해 주십시오.
    $ docker login -u <access-key-id> <registry-name>.<region-code>.ncr.ntruss.com
    Password: <secret-key>
    Login Succeeded
    
    1. 아래 예시와 같이 docker pull 명령어를 사용하여 실행해 주십시오.
      • 레지스트리의 상세 정보 화면의 접근 명령어 항목에 있는 이용 가이드 버튼을 클릭하면 다운로드(Pull) 명령어 예시 및 설명을 확인할 수 있습니다.
    $ docker pull <registry-name>.<region-code>.ncr.ntruss.com/jenkins
    Using default tag: latest
    latest: Pulling from jenkins
    55cbf04beb70: Pull complete
    c58988e753d7: Pull complete
    70fcfa476f73: Pull complete
    0539c80a02be: Downloading [===============>                                   ]  40.52MB/133.9MB
    54fefc6dcf80: Download complete
    911bc90e47a8: Download complete
    38430d93efed: Download complete
    c0cbcb5ac747: Download complete
    35ade7a86a8e: Download complete
    aa433a6a56b1: Downloading [===================>                               ]  27.91MB/70.41MB
    841c1dd38d62: Download complete
    12b47c68955c: Download complete
    1322ea3e7bfd: Download complete
    
    참고

    서브 계정으로 로그인한 경우, 해당 서브 계정의 Sub Account 정책에 뷰어(View(Full)) 이상의 권한이 있어야 해당 작업이 허용됩니다.

    도커 컨테이너 이미지 관리

    Container Registry의 레지스트리에 등록된 도커 컨테이너 이미지를 확인하고, 이미지에 메모를 입력하거나 오래된 태그 정리할 수 있으며, 도커 컨테이너 이미지를 삭제하는 등의 관리를 할 수 있습니다.

    업로드 이미지 확인

    특정 레지스트리에 업로드된 도커 컨테이너 이미지를 확인하고 관리할 수 있습니다.

    레지스트리에 업로드된 도커 컨테이너 이미지 목록으로 이동하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.

    2. 레지스트리 목록에서 대상 레지스트리에 있는 이미지 리스트의 [이동] 버튼을 클릭해 주십시오.

    3. 레지스트리의 도커 컨테이너 이미지 목록이 나타나면 요약 정보를 확인하거나 도커 컨테이너 이미지를 클릭하여 상세 정보를 확인해 주십시오.

      • [삭제]: 레지스트리에 업로드된 이미지 삭제
      • 목록 및 [Details]
        • 이미지 이름: 도커 컨테이너 이미지 이름
        • 최근 변경일: 도커 컨테이너 이미지를 변경한 최근 일시
        • Pulls: 도커 컨테이너 이미지를 다운로드한 횟수
        • Pull 명령어: Docker CLI 환경 등에서 도커 컨테이너 이미지를 다운로드(Pull)를 하기 위한 명령어 확인. 이용 가이드 버튼을 클릭하면 다운로드(Pull) 외 로그인(login), 업로드(Push) 명령어도 확인 가능
        • Configuration: 태그 변경 가능 여부 설정
        • Short Description: 100자 이내의 설명 입력
        • Full Description: 마크다운(Markdown) 형식을 지원하며 보다 풍부한 설명 작성 가능
      • [Tags]
        • Tag 삭제: 도커 컨테이너 이미지에 적용되어 있는 태그(Tag) 삭제
        • 태그 이름: 도커 컨테이너 이미지에 적용되어 있는 태그(Tag) 이름
        • 압축 사이즈: 해당 태그가 적용되어 있는 도커 컨테이너 이미지의 크기
        • 최근 변경일: 도커 컨테이너 이미지를 변경한 최근 일시
        • Digest: 도커 컨테이너 이미지의 고유 식별 아이디
        • 보안 취약점: 도커 컨테이너 이미지 보안 취약점 스캔

    이미지 Description 작성

    도커 컨테이너 이미지에 대한 설명을 Short Description과 Full Description로 작성할 수 있습니다.

    • Short Description: 100자 이내의 설명 입력
    • Full Description: 마크다운(Markdown) 형식을 지원하여 보다 풍부한 설명 작성 가능

    도커 컨테이너 이미지에 대한 설명(Description)을 작성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    2. 레지스트리 목록에서 대상 레지스트리에 있는 이미지 리스트의 [이동] 버튼을 클릭해 주십시오.
    3. 도커 컨테이너 이미지 목록의 Detail 탭에서 Short Description 또는 Full Description[수정] 버튼을 클릭해 주십시오.
    4. 입력 필드에 설명을 입력한 후 [제출] 버튼을 클릭해 주십시오.
      • Full Description은 마크다운 형식으로 설명을 입력할 수 있는 [Code] 탭과 작성한 설명을 미리 볼 수 있는 [Preview] 탭으로 구분됩니다.
      • Short Description에서 작성한 설명은 목록의 Short Description 열에 표시됩니다.

    이미지 삭제

    레지스트리에 업로드된 도커 컨테이너 이미지를 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    2. 레지스트리 목록에서 대상 레지스트리에 있는 이미지 리스트의 [이동] 버튼을 클릭해 주십시오.
    3. 도커 컨테이너 이미지 목록에서 삭제 대상 도커 컨테이너 이미지를 체크하여 선택한 후 [삭제] 버튼을 클릭해 주십시오.
    4. 이미지 삭제 팝업 창에서 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.
      • 이미지가 삭제되면 해당 이미지의 모든 태그(tag)도 자동으로 삭제됩니다.

    이미지 태그 삭제

    도커 컨테이너 이미지에 적용된 태그(tag)를 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    2. 레지스트리 목록에서 대상 레지스트리에 있는 이미지 리스트의 [이동] 버튼을 클릭해 주십시오.
    3. 도커 컨테이너 이미지 목록에서 대상 도커 컨테이너 이미지를 클릭해 주십시오.
    4. 상세 정보 화면에서 [Tags] 탭을 클릭해 주십시오.
    5. 태그 목록에서 삭제 대상 태그를 체크하여 선택한 후 [Tag 삭제] 버튼을 클릭해 주십시오.
    6. Tag 삭제 팝업 창에서 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.

    오래된 태그 정리

    도커 컨테이너 이미지에 적용된 태그를 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    2. 레지스트리 목록에서 대상 레지스트리를 클릭해 주십시오.
    3. 레지스트리 상세 정보 화면에서 오래된 태그 정리 항목의 [이동] 버튼을 클릭해 주십시오.
    4. 필요한 경우, Filter 기능을 이용하여 조회 조건에 맞는 도커 컨테이너 이미지만 표시할 수 있습니다. 기준 날짜와 마지막 태그 제외 여부를 선택한 후 [적용] 버튼을 클릭해 주십시오.
    5. 이미지 목록에서, 해당 태그를 삭제할 이미지를 체크하여 선택한 후 [삭제] 버튼을 클릭해 주십시오.
    6. 삭제 팝업 창에서 내용을 확인한 후 [삭제] 버튼을 클릭해 주십시오.

    태그 변경 가능 여부 활성/비활성화

    동일한 이름의 태그를 가진 이미지가 Push/Overwrite 되는 것을 방지하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Containers > Container Registry 메뉴를 차례대로 클릭해 주십시오.
    2. 레지스트리 목록에서 대상 레지스트리에 있는 이미지 리스트의 [이동] 버튼을 클릭해 주십시오.
    3. 도커 컨테이너 이미지 목록의 Details 탭에서 Configuration에 있는 i-containerregistry-detailset을 클릭해 주십시오.
    4. Configuration 설정 팝업창에서 Tag Mutability 항목의 활성/비활성 토글 버튼을 클릭해 사용 여부를 설정한 후 [확인] 버튼을 클릭해 주십시오.

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.