InfoGrab Docs

GitLab 컨테이너 레지스트리

요약

각 GitLab 프로젝트의 컨테이너 이미지를 저장하기 위해 통합 컨테이너 레지스트리를 사용할 수 있습니다. 관리자는 GitLab 인스턴스에 대한 컨테이너 레지스트리를 활성화해야 합니다. Docker Hub에서 컨테이너 이미지를 가져오는 경우 속도 제한을 피하고 파이프라인을 빠르게 하기 위해 GitLab 의존성 프록시를 사용할 수 있습니다.

각 GitLab 프로젝트의 컨테이너 이미지를 저장하기 위해 통합 컨테이너 레지스트리를 사용할 수 있습니다.

관리자는 GitLab 인스턴스에 대한 컨테이너 레지스트리를 활성화해야 합니다. 자세한 내용은 GitLab 컨테이너 레지스트리 관리를 참조하세요.

Note

Docker Hub에서 컨테이너 이미지를 가져오는 경우 속도 제한을 피하고 파이프라인을 빠르게 하기 위해 GitLab 의존성 프록시를 사용할 수 있습니다.

컨테이너 레지스트리 보기#

프로젝트 또는 그룹의 컨테이너 레지스트리를 볼 수 있습니다.

  1. 왼쪽 사이드바에서 배포 > 컨테이너 레지스트리를 선택합니다.

컨테이너 이미지를 검색, 정렬, 필터링 및 삭제할 수 있습니다. 브라우저에서 URL을 복사하여 필터링된 뷰를 공유할 수 있습니다.

컨테이너 레지스트리에서 특정 컨테이너 이미지의 태그 보기#

컨테이너 레지스트리 태그 세부 정보 페이지를 사용하여 특정 컨테이너 이미지와 관련된 태그 목록을 볼 수 있습니다:

  1. 왼쪽 사이드바에서 배포 > 컨테이너 레지스트리를 선택합니다.
  2. 컨테이너 이미지를 선택합니다.

게시된 시점, 소비하는 스토리지 양, 매니페스트 및 구성 다이제스트와 같은 각 태그에 대한 세부 정보를 볼 수 있습니다.

이 페이지에서 태그를 검색, 정렬(태그 이름 기준) 및 삭제할 수 있습니다. 브라우저에서 URL을 복사하여 필터링된 뷰를 공유할 수 있습니다.

스토리지 사용량#

컨테이너 레지스트리 스토리지 사용량을 보려면 프로젝트와 그룹 전체의 컨테이너 저장소 크기를 추적하고 관리합니다.

자세한 내용은 컨테이너 레지스트리 사용량 보기를 참조하세요.

컨테이너 레지스트리의 컨테이너 이미지 사용#

컨테이너 레지스트리에 호스팅된 컨테이너 이미지를 다운로드하고 실행하려면:

  1. 왼쪽 사이드바에서 배포 > 컨테이너 레지스트리를 선택합니다.

  2. 작업할 컨테이너 이미지를 찾아 이미지 경로 복사([copy-to-clipboard])를 선택합니다.

  3. 복사한 링크를 사용하여 docker run을 사용합니다:

    docker run [options] registry.example.com/group/project/image [arguments]
    
Note

비공개 저장소에서 컨테이너 이미지를 다운로드하려면 컨테이너 레지스트리로 인증해야 합니다. 자세한 내용은 컨테이너 레지스트리로 인증을 참조하세요.

컨테이너 이미지의 명명 규칙#

컨테이너 이미지는 다음 명명 규칙을 따라야 합니다:

<registry server>/<namespace>/<project>[/<optional path>]

예를 들어 프로젝트가 gitlab.example.com/mynamespace/myproject인 경우 컨테이너 이미지는 gitlab.example.com/mynamespace/myproject로 명명되어야 합니다.

컨테이너 이미지 이름 끝에 최대 두 수준까지 추가 이름을 추가할 수 있습니다.

예를 들어 myproject라는 프로젝트의 컨테이너 이미지에 대한 유효한 이름은 다음과 같습니다:

registry.example.com/mynamespace/myproject:some-tag
registry.example.com/mynamespace/myproject/image:latest
registry.example.com/mynamespace/myproject/my/image:rc1

컨테이너 레지스트리 저장소 이동 또는 이름 변경#

히스토리

컨테이너 저장소의 경로는 항상 관련 프로젝트의 저장소 경로와 일치하므로 컨테이너 레지스트리만 이름을 바꾸거나 이동하는 것은 불가능합니다. 대신 다음을 수행할 수 있습니다:

성능상의 이유로 채워진 컨테이너 저장소가 있는 프로젝트의 이름 변경은 최대 1,000개의 컨테이너 저장소가 있는 프로젝트로 제한됩니다.

GitLab Self-Managed 인스턴스에서 그룹 또는 프로젝트를 이동하거나 이름을 바꾸기 전에 모든 컨테이너 이미지를 삭제할 수 있습니다. 또는 이 제한을 해결하기 위한 커뮤니티 제안이 포함된 이슈 18383을 참조하세요. 에픽 9459는 GitLab Self-Managed에 컨테이너 저장소가 있는 프로젝트 및 그룹 이동 지원을 추가하는 것을 제안합니다.

프로젝트에 대한 컨테이너 레지스트리 비활성화#

컨테이너 레지스트리는 기본적으로 활성화되어 있습니다.

하지만 프로젝트의 컨테이너 레지스트리를 제거할 수 있습니다:

  1. 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
  2. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 컨테이너 레지스트리를 비활성화합니다.
  3. 변경 사항 저장을 선택합니다.

배포 > 컨테이너 레지스트리 항목이 프로젝트의 사이드바에서 제거됩니다.

컨테이너 레지스트리 가시성 변경#

기본적으로 컨테이너 레지스트리는 프로젝트에 액세스할 수 있는 모든 사람이 볼 수 있습니다. 하지만 프로젝트의 컨테이너 레지스트리 가시성을 변경할 수 있습니다.

이 설정이 사용자에게 부여하는 권한에 대한 자세한 내용은 컨테이너 레지스트리 가시성 권한을 참조하세요.

  1. 왼쪽 사이드바에서 설정 > 일반을 선택합니다.

  2. 가시성, 프로젝트 기능, 권한 섹션을 확장합니다.

  3. 컨테이너 레지스트리 아래에서 드롭다운 목록에서 옵션을 선택합니다:

    • 액세스할 수 있는 모든 사람(기본값): 컨테이너 레지스트리는 프로젝트에 액세스할 수 있는 모든 사람이 볼 수 있습니다. 프로젝트가 공개인 경우 컨테이너 레지스트리도 공개됩니다. 프로젝트가 내부 또는 비공개인 경우 컨테이너 레지스트리도 내부 또는 비공개입니다.

    • 프로젝트 멤버만: 컨테이너 레지스트리는 Reporter, Developer, Maintainer 또는 Owner 역할의 프로젝트 멤버만 볼 수 있습니다. 이 가시성은 컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람으로 설정된 비공개 프로젝트의 동작과 유사합니다.

  4. 변경 사항 저장을 선택합니다.

컨테이너 레지스트리 가시성 권한#

컨테이너 레지스트리를 보고 컨테이너 이미지를 가져오는 기능은 컨테이너 레지스트리의 가시성 권한으로 제어됩니다. UI의 가시성 설정 또는 API를 통해 가시성을 변경할 수 있습니다.

컨테이너 레지스트리 업데이트 및 컨테이너 이미지 푸시 또는 삭제와 같은 다른 권한은 이 설정의 영향을 받지 않습니다. 그러나 컨테이너 레지스트리를 비활성화하면 모든 컨테이너 레지스트리 작업이 비활성화됩니다. 자세한 내용은 역할 및 권한을 참조하세요.

익명
(인터넷의 모든 사람)
Guest Reporter, Developer, Maintainer, Owner
컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람(UI) 또는 enabled(API)로 설정된 공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
컨테이너 레지스트리 가시성이 프로젝트 멤버만(UI) 또는 private(API)로 설정된 공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람(UI) 또는 enabled(API)로 설정된 내부 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오
컨테이너 레지스트리 가시성이 프로젝트 멤버만(UI) 또는 private(API)로 설정된 내부 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람(UI) 또는 enabled(API)로 설정된 비공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리 가시성이 프로젝트 멤버만(UI) 또는 private(API)로 설정된 비공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리가 disabled인 모든 프로젝트 컨테이너 레지스트리에 대한 모든 작업 아니오 아니오 아니오

지원되는 이미지 유형#

히스토리
  • GitLab 16.6에서 OCI 적합성이 도입됨.

컨테이너 레지스트리는 Docker V2Open Container Initiative(OCI) 이미지 형식을 지원합니다. 또한 컨테이너 레지스트리는 OCI 배포 사양을 준수합니다.

OCI 지원을 통해 Helm 3+ 차트 패키지와 같은 OCI 기반 이미지 형식을 레지스트리에 호스팅할 수 있습니다. GitLab API 및 UI에서는 이미지 형식 간에 차이가 없습니다. 이슈 38047은 Helm부터 시작하여 이 차이를 다루고 있습니다.

컨테이너 이미지 서명#

히스토리
  • GitLab 17.1에서 컨테이너 이미지 서명 표시가 도입됨.

GitLab 컨테이너 레지스트리에서 OCI 1.1 매니페스트 subject 필드를 사용하여 컨테이너 이미지를 Cosign 서명과 연결할 수 있습니다. 그러면 서명의 태그를 검색하지 않고도 연결된 컨테이너 이미지와 함께 서명 정보를 볼 수 있습니다.

컨테이너 이미지의 태그를 볼 때 연결된 서명이 있는 각 태그 옆에 아이콘이 표시됩니다. 서명 세부 정보를 보려면 아이콘을 선택합니다.

사전 조건:

  • 컨테이너 이미지에 서명하려면 Cosign v2.0 이상.
  • GitLab Self-Managed의 경우 서명을 표시하려면 메타데이터 데이터베이스로 구성된 GitLab 컨테이너 레지스트리가 필요합니다. 자세한 내용은 컨테이너 레지스트리 메타데이터 데이터베이스를 참조하세요.

OCI 참조자 데이터로 컨테이너 이미지 서명#

Cosign을 사용하여 서명에 참조자 데이터를 추가하려면 다음을 수행해야 합니다:

  • COSIGN_EXPERIMENTAL 환경 변수를 1로 설정합니다.
  • 서명 명령에 --registry-referrers-mode oci-1-1을 추가합니다.

예를 들어:

COSIGN_EXPERIMENTAL=1 cosign sign --registry-referrers-mode oci-1-1 <container image>
Note

GitLab 컨테이너 레지스트리는 OCI 1.1 매니페스트 subject 필드를 지원하지만 OCI 1.1 참조자 API를 완전히 구현하지는 않습니다.

GitLab 컨테이너 레지스트리

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

각 GitLab 프로젝트의 컨테이너 이미지를 저장하기 위해 통합 컨테이너 레지스트리를 사용할 수 있습니다. 관리자는 GitLab 인스턴스에 대한 컨테이너 레지스트리를 활성화해야 합니다. Docker Hub에서 컨테이너 이미지를 가져오는 경우 속도 제한을 피하고 파이프라인을 빠르게 하기 위해 GitLab 의존성 프록시를 사용할 수 있습니다.

각 GitLab 프로젝트의 컨테이너 이미지를 저장하기 위해 통합 컨테이너 레지스트리를 사용할 수 있습니다.

관리자는 GitLab 인스턴스에 대한 컨테이너 레지스트리를 활성화해야 합니다. 자세한 내용은 GitLab 컨테이너 레지스트리 관리를 참조하세요.

Note

Docker Hub에서 컨테이너 이미지를 가져오는 경우 속도 제한을 피하고 파이프라인을 빠르게 하기 위해 GitLab 의존성 프록시를 사용할 수 있습니다.

컨테이너 레지스트리 보기#

프로젝트 또는 그룹의 컨테이너 레지스트리를 볼 수 있습니다.

  1. 왼쪽 사이드바에서 배포 > 컨테이너 레지스트리를 선택합니다.

컨테이너 이미지를 검색, 정렬, 필터링 및 삭제할 수 있습니다. 브라우저에서 URL을 복사하여 필터링된 뷰를 공유할 수 있습니다.

컨테이너 레지스트리에서 특정 컨테이너 이미지의 태그 보기#

컨테이너 레지스트리 태그 세부 정보 페이지를 사용하여 특정 컨테이너 이미지와 관련된 태그 목록을 볼 수 있습니다:

  1. 왼쪽 사이드바에서 배포 > 컨테이너 레지스트리를 선택합니다.
  2. 컨테이너 이미지를 선택합니다.

게시된 시점, 소비하는 스토리지 양, 매니페스트 및 구성 다이제스트와 같은 각 태그에 대한 세부 정보를 볼 수 있습니다.

이 페이지에서 태그를 검색, 정렬(태그 이름 기준) 및 삭제할 수 있습니다. 브라우저에서 URL을 복사하여 필터링된 뷰를 공유할 수 있습니다.

스토리지 사용량#

컨테이너 레지스트리 스토리지 사용량을 보려면 프로젝트와 그룹 전체의 컨테이너 저장소 크기를 추적하고 관리합니다.

자세한 내용은 컨테이너 레지스트리 사용량 보기를 참조하세요.

컨테이너 레지스트리의 컨테이너 이미지 사용#

컨테이너 레지스트리에 호스팅된 컨테이너 이미지를 다운로드하고 실행하려면:

  1. 왼쪽 사이드바에서 배포 > 컨테이너 레지스트리를 선택합니다.

  2. 작업할 컨테이너 이미지를 찾아 이미지 경로 복사([copy-to-clipboard])를 선택합니다.

  3. 복사한 링크를 사용하여 docker run을 사용합니다:

    docker run [options] registry.example.com/group/project/image [arguments]
    
Note

비공개 저장소에서 컨테이너 이미지를 다운로드하려면 컨테이너 레지스트리로 인증해야 합니다. 자세한 내용은 컨테이너 레지스트리로 인증을 참조하세요.

컨테이너 이미지의 명명 규칙#

컨테이너 이미지는 다음 명명 규칙을 따라야 합니다:

<registry server>/<namespace>/<project>[/<optional path>]

예를 들어 프로젝트가 gitlab.example.com/mynamespace/myproject인 경우 컨테이너 이미지는 gitlab.example.com/mynamespace/myproject로 명명되어야 합니다.

컨테이너 이미지 이름 끝에 최대 두 수준까지 추가 이름을 추가할 수 있습니다.

예를 들어 myproject라는 프로젝트의 컨테이너 이미지에 대한 유효한 이름은 다음과 같습니다:

registry.example.com/mynamespace/myproject:some-tag
registry.example.com/mynamespace/myproject/image:latest
registry.example.com/mynamespace/myproject/my/image:rc1

컨테이너 레지스트리 저장소 이동 또는 이름 변경#

히스토리

컨테이너 저장소의 경로는 항상 관련 프로젝트의 저장소 경로와 일치하므로 컨테이너 레지스트리만 이름을 바꾸거나 이동하는 것은 불가능합니다. 대신 다음을 수행할 수 있습니다:

성능상의 이유로 채워진 컨테이너 저장소가 있는 프로젝트의 이름 변경은 최대 1,000개의 컨테이너 저장소가 있는 프로젝트로 제한됩니다.

GitLab Self-Managed 인스턴스에서 그룹 또는 프로젝트를 이동하거나 이름을 바꾸기 전에 모든 컨테이너 이미지를 삭제할 수 있습니다. 또는 이 제한을 해결하기 위한 커뮤니티 제안이 포함된 이슈 18383을 참조하세요. 에픽 9459는 GitLab Self-Managed에 컨테이너 저장소가 있는 프로젝트 및 그룹 이동 지원을 추가하는 것을 제안합니다.

프로젝트에 대한 컨테이너 레지스트리 비활성화#

컨테이너 레지스트리는 기본적으로 활성화되어 있습니다.

하지만 프로젝트의 컨테이너 레지스트리를 제거할 수 있습니다:

  1. 왼쪽 사이드바에서 설정 > 일반을 선택합니다.
  2. 가시성, 프로젝트 기능, 권한 섹션을 확장하고 컨테이너 레지스트리를 비활성화합니다.
  3. 변경 사항 저장을 선택합니다.

배포 > 컨테이너 레지스트리 항목이 프로젝트의 사이드바에서 제거됩니다.

컨테이너 레지스트리 가시성 변경#

기본적으로 컨테이너 레지스트리는 프로젝트에 액세스할 수 있는 모든 사람이 볼 수 있습니다. 하지만 프로젝트의 컨테이너 레지스트리 가시성을 변경할 수 있습니다.

이 설정이 사용자에게 부여하는 권한에 대한 자세한 내용은 컨테이너 레지스트리 가시성 권한을 참조하세요.

  1. 왼쪽 사이드바에서 설정 > 일반을 선택합니다.

  2. 가시성, 프로젝트 기능, 권한 섹션을 확장합니다.

  3. 컨테이너 레지스트리 아래에서 드롭다운 목록에서 옵션을 선택합니다:

    • 액세스할 수 있는 모든 사람(기본값): 컨테이너 레지스트리는 프로젝트에 액세스할 수 있는 모든 사람이 볼 수 있습니다. 프로젝트가 공개인 경우 컨테이너 레지스트리도 공개됩니다. 프로젝트가 내부 또는 비공개인 경우 컨테이너 레지스트리도 내부 또는 비공개입니다.

    • 프로젝트 멤버만: 컨테이너 레지스트리는 Reporter, Developer, Maintainer 또는 Owner 역할의 프로젝트 멤버만 볼 수 있습니다. 이 가시성은 컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람으로 설정된 비공개 프로젝트의 동작과 유사합니다.

  4. 변경 사항 저장을 선택합니다.

컨테이너 레지스트리 가시성 권한#

컨테이너 레지스트리를 보고 컨테이너 이미지를 가져오는 기능은 컨테이너 레지스트리의 가시성 권한으로 제어됩니다. UI의 가시성 설정 또는 API를 통해 가시성을 변경할 수 있습니다.

컨테이너 레지스트리 업데이트 및 컨테이너 이미지 푸시 또는 삭제와 같은 다른 권한은 이 설정의 영향을 받지 않습니다. 그러나 컨테이너 레지스트리를 비활성화하면 모든 컨테이너 레지스트리 작업이 비활성화됩니다. 자세한 내용은 역할 및 권한을 참조하세요.

익명
(인터넷의 모든 사람)
Guest Reporter, Developer, Maintainer, Owner
컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람(UI) 또는 enabled(API)로 설정된 공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
컨테이너 레지스트리 가시성이 프로젝트 멤버만(UI) 또는 private(API)로 설정된 공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람(UI) 또는 enabled(API)로 설정된 내부 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오
컨테이너 레지스트리 가시성이 프로젝트 멤버만(UI) 또는 private(API)로 설정된 내부 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리 가시성이 액세스할 수 있는 모든 사람(UI) 또는 enabled(API)로 설정된 비공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리 가시성이 프로젝트 멤버만(UI) 또는 private(API)로 설정된 비공개 프로젝트 컨테이너 레지스트리 보기
및 이미지 가져오기
아니오 아니오
컨테이너 레지스트리가 disabled인 모든 프로젝트 컨테이너 레지스트리에 대한 모든 작업 아니오 아니오 아니오

지원되는 이미지 유형#

히스토리
  • GitLab 16.6에서 OCI 적합성이 도입됨.

컨테이너 레지스트리는 Docker V2Open Container Initiative(OCI) 이미지 형식을 지원합니다. 또한 컨테이너 레지스트리는 OCI 배포 사양을 준수합니다.

OCI 지원을 통해 Helm 3+ 차트 패키지와 같은 OCI 기반 이미지 형식을 레지스트리에 호스팅할 수 있습니다. GitLab API 및 UI에서는 이미지 형식 간에 차이가 없습니다. 이슈 38047은 Helm부터 시작하여 이 차이를 다루고 있습니다.

컨테이너 이미지 서명#

히스토리
  • GitLab 17.1에서 컨테이너 이미지 서명 표시가 도입됨.

GitLab 컨테이너 레지스트리에서 OCI 1.1 매니페스트 subject 필드를 사용하여 컨테이너 이미지를 Cosign 서명과 연결할 수 있습니다. 그러면 서명의 태그를 검색하지 않고도 연결된 컨테이너 이미지와 함께 서명 정보를 볼 수 있습니다.

컨테이너 이미지의 태그를 볼 때 연결된 서명이 있는 각 태그 옆에 아이콘이 표시됩니다. 서명 세부 정보를 보려면 아이콘을 선택합니다.

사전 조건:

  • 컨테이너 이미지에 서명하려면 Cosign v2.0 이상.
  • GitLab Self-Managed의 경우 서명을 표시하려면 메타데이터 데이터베이스로 구성된 GitLab 컨테이너 레지스트리가 필요합니다. 자세한 내용은 컨테이너 레지스트리 메타데이터 데이터베이스를 참조하세요.

OCI 참조자 데이터로 컨테이너 이미지 서명#

Cosign을 사용하여 서명에 참조자 데이터를 추가하려면 다음을 수행해야 합니다:

  • COSIGN_EXPERIMENTAL 환경 변수를 1로 설정합니다.
  • 서명 명령에 --registry-referrers-mode oci-1-1을 추가합니다.

예를 들어:

COSIGN_EXPERIMENTAL=1 cosign sign --registry-referrers-mode oci-1-1 <container image>
Note

GitLab 컨테이너 레지스트리는 OCI 1.1 매니페스트 subject 필드를 지원하지만 OCI 1.1 참조자 API를 완전히 구현하지는 않습니다.