Image Registry 서비스는 오픈소스프로젝트인 Harbor를 이용해 서비스 됩니다. Docker Image 관리를 위한 저장소 기능과 사용자 인증 기능을 제공합니다.
여러 사용자 대상으로 서비스를 제공하기 위해 Public/Private 프로젝트를 생성해 이미지를 관리 할 수 있습니다. 추가 사항은 아래 가이드나 오픈소스 프로젝트 사이트의 사용자 가이드를 참고합니다.
서비스를 사용하기 위해서 ZCP Console 사이드 메뉴에서 Image Registry 를 클릭합니다.
계정 가입
Harbor 좌측 하단의 Sign up for an account 링크를 클릭하여 계정을 생성하고, Harbor 에 로그인합니다.
프로젝트 조회하기
프로젝트 목록 조회
시스템에 로그인 한 후 최초 화면에 좌측 메뉴 상단의 Projects 메뉴를 클릭하면 프로젝트 목록을 확인할 수 있습니다.
Image 조회
프로젝트 목록 화면에서 Project Name 링크를 클릭 합니다.
그러면 프로젝트에 포함되어 있는 Image 목록을 조회할 수 있습니다.
프로젝트에 Image Push 하기
Docker Client로...
Image Registry에 로그인
Public 프로젝트에 Image를 Push하거나 Private 프로젝트에 Image Pull 또는 Push 하기 위해서는 Image Registry에 로그인 해야 합니다.
로그인은 다음 명령어를 수행하면 바로 로그인 됩니다. 로그인을 하기 위해서는 프로젝트 멤버로 등록되어 있어야만 합니다.
$ docker login [IMAGE_REGISTRY_URL] Username: # Image Registry 사용자 계정 Password: # Image Registry 사용자 비밀번호
Image Push 하기
Docker 명령어를 이용해서 Push 하는 방법은 기존 Image Push 하는 방법과 같습니다. Push 하기 전에 docker login을 수행해야 합니다.
# 이미지 Tag를 생성합니다. $ docker tag SOURCE_IMAGE[:TAG] [IMAGE_REGISTRY_URL]/[프로젝트명]/IMAGE[:TAG] # 이미지를 Push 합니다. $ docker push [IMAGE REGISTRY URL]/[프로젝트명]/IMAGE[:TAG]
Image Pull 하기
Docker 명령어를 이용해서 Pull하는 방법은 접근할 수 있는 Image를 입력하면 됩니다.
$ docker pull [IMAGE_REGISTRY_URL]/[프로젝트명]/IMAGE[:TAG]
Kubernetes Pod에서...
ImagePullSecret 생성 및 등록 하기
Kubernetes Pod에서 Private Image Registry를 사용할 경우 Docker login과 같은 인증 처리를 해야 합니다. 이를 위해 ImagePullSecret를 사용합니다.
네임스페이스에 생성된 Secret 을 아래 명령어로 확인합니다.
$ kubectl get secret --namespace my-namespace NAME TYPE DATA AGE my-docker-secret kubernetes.io/dockerconfigjson 1 1d my-tls-secret kubernetes.io/tls 2 1d
Pod을 생성하기 위해서 아래와 같이 imagePullSecrets에 Secret 명을 추가하면 Pod 생성시 해당 이미지를 사용할 수 있습니다.
apiVersion: v1 kind: Pod metadata: name: private-reg spec: containers: - name: private-reg-container image: [IMAGE_REGISTRY_URL]/[프로젝트명]/IMAGE[:TAG] imagePullSecrets: - name: my-docker-secret