可以將映像從 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 認證協助程式登入 Harbor 登錄
    docker-credential-vsphere login <container-registry-IP> --user username@domain.com
    備註: 雖然可接受 --user username 進行登入,但是應使用 UserPrincipalName (UPN) 語法 ( --user username@domain.com) 來登入並使用 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 網繭