Docker에서 내장된 Harbor 레지스트리의 프로젝트로 이미지를 푸시할 수 있습니다. 내장된 Harbor 레지스트리의 프로젝트는 감독자 클러스터의 vSphere 네임스페이스에 해당합니다.

사전 요구 사항

또한, 이미지를 푸시하려는 Harbor 레지스트리의 프로젝트에 해당하는 네임스페이스에 대한 쓰기 권한이 있는 사용자 계정을 확보합니다.

마지막으로, 레지스트리로 푸시할 수 있는 로컬 이미지가 필요합니다. 다음 명령은 Docker Hub에서 hello-world 이미지를 끌어옵니다. 이미지를 끌어오려면 이 곳의 계정이 필요합니다.
docker run hello-world
예상 결과:
Hello from Docker!
This message shows that your installation appears to be working correctly.
docker images 명령을 사용하여 이미지를 확인합니다.
docker images
REPOSITORY     TAG                 IMAGE ID            CREATED             SIZE
hello-world    latest              bf756fb1ae65        10 months ago       13.3kB

프로시저

  1. vSphere Docker Credential Helper를 통해 Harbor 레지스트리에 로그인합니다.
    docker-credential-vsphere login <container-registry-IP> --user [email protected]
    참고: 로그인에 --user username 제공이 허용되지만 UPN(사용자 계정 이름) 구문( --user [email protected])을 사용하여 로그인하고 docker push 명령을 사용해야 합니다.
  2. Harbor 레지스트리의 프로젝트로 푸시할 이미지에 사용하려는 네임스페이스와 동일한 이름으로 태그를 지정합니다.
    docker tag <image-name>[:TAG] <container-registry-IP>/<project-name>/<image-name>[:TAG]
    
    예:
    docker tag hello-world:latest 10.179.145.77/tkgs-cluster-ns/hello-world:latest
    
    docker images
    REPOSITORY                                    TAG                 IMAGE ID            CREATED             SIZE
    10.179.145.77/tkgs-cluster-ns/hello-world     latest              bf756fb1ae65        10 months ago       13.3kB
    hello-world                                   latest              bf756fb1ae65        10 months ago       13.3kB
    
  3. Harbor의 프로젝트로 이미지를 푸시하려면 다음 명령을 실행합니다.
    구문:
    docker push <container-registry-IP>/<namespace-name>/<image_name>
    예:
    docker push 10.179.145.77/tkgs-cluster-ns/hello-world:latest
    
    예상 결과:
    The push refers to repository [10.179.145.77/tkgs-cluster-ns/hello-world]
    9c27e219663c: Pushed
    latest: digest: sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042 size: 525
    
  4. 내장된 Harbor 레지스트리에서 이제 이미지를 사용할 수 있는지 확인합니다.
    • 내장된 Harbor 레지스트리 콘솔에 로그인
    • 프로젝트 > 프로젝트 이름에서 프로젝트 링크를 클릭합니다.
    • 저장소 탭을 선택합니다.
    • 레지스트리에 푸시한 이미지가 namespace/image-name 형식(예: tkgs-cluster-ns/hello-world)으로 표시되어야 합니다.
    • 이 이미지를 선택하면 latest 태그와 기타 메타데이터가 표시됩니다.
  5. 저장소 탭으로 다시 이동합니다.
  6. 이미지 푸시 Docker 명령 드롭다운 메뉴를 선택합니다. 이미지에 태그를 지정하고 이 저장소에 푸시하는 명령이 제공됩니다.

다음은 내장된 Harbor 레지스트리로 이미지를 푸시하는 또 다른 예입니다.
docker tag busybox:latest <container-registry-IP>/<namespace-name>/busybox:latest
docker push <container-registry-IP>/busybox/busybox:latest

다음에 수행할 작업

Harbor 레지스트리의 이미지를 사용하여 vSphere 포드를 배포합니다. 내장된 Harbor 레지스트리를 사용하여 vSphere 포드에 애플리케이션 배포의 내용을 참조하십시오.