存放區和映像檔名稱

當您使用 API、gclouddocker 指令與存放區互動時,Artifact Registry 會使用命名慣例來識別存放區和映像檔。

Docker 存放區

Docker 存放區的全名格式如下:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY

其中:

  • LOCATION 是存放區的地區或多地區位置
  • PROJECT 是您的 Google Cloud 主控台專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
  • REPOSITORY 是存放區的名稱。

舉例來說,請考慮具有下列特性的圖片:

  • 存放區位置:us-west1
  • 存放區格式:docker
  • 存放區名稱:my-repo
  • 專案 ID:my-project

存放區的指定方式如下:

us-west1-docker.pkg.dev/my-project/my-repo

容器映像檔名稱

容器映像檔的完整名稱格式如下:

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG

LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

其中:

  • LOCATION 是存放區的地區或多地區位置
  • PROJECT 是您的 Google Cloud 主控台專案 ID。如果您的專案 ID 包含冒號 (:),請參閱「網域範圍專案」一節。
  • REPOSITORY 是儲存圖片的存放區名稱。
  • IMAGE 是存放區中的映像檔名稱。
  • TAG 是您要提取的映像檔版本標記。
  • IMAGE-DIGEST 是圖片內容的 sha256 雜湊值。在 Google Cloud 主控台中按一下特定圖片,即可查看該圖片的中繼資料。摘要會列為「映像檔摘要」。如果您未指定標記或摘要,Artifact Registry 會尋找具有預設標記 latest 的映像檔。如要瞭解版本資訊,請參閱「容器映像檔版本」。

舉例來說,請考慮具有下列特性的圖片:

  • 存放區位置:us-west1
  • 存放區名稱:my-repo
  • 專案 ID:my-project
  • 圖片名稱:test
  • 標記:staging

這個版本的圖片已標記為:

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

容器映像檔版本

存放區可以包含許多容器映像檔,而且這些映像檔可以有不同的版本。如要識別映像檔的特定版本,您可以指定映像檔摘要或標記。

總覽
圖片摘要是圖片索引或圖片資訊清單的自動產生雜湊。每個圖片摘要都是圖片版本的專屬 ID,無法變更。摘要是圖片內容的 sha256 雜湊值。
標記

圖片標記是標籤,通常是使用者容易理解的字串,例如 v1.1development。標記只能指向一個圖片版本。在 Artifact Registry 中,您可以設定 Docker 存放區,允許使用可變更的映像檔標記或強制使用不可變更的映像檔標記。

  • 可變更:標記只會指向單一版本的圖片,但其參照的特定摘要可能會變更。

    常見做法是在建構期間,使用版本 ID (例如 v1.1) 標記圖片。當建構作業將多個映像檔版本推送至註冊表,且使用相同的 v1.1 標記時,該標記會參照推送至註冊表的最後一個版本的摘要。雖然可變更的圖片標記可提供方便的版本標示方式,但惡意人士也可能會操控這些標記,將標記與惡意圖片版本建立關聯。

  • Immutable:在存放區中,標記一律會指向同一份映像檔摘要。如果 Artifact Registry 存放區已針對不可變動的圖片標記進行設定,則無法執行下列動作:

    • 刪除標記的圖片。但仍可刪除未標記的圖片。
    • 從圖片中移除標記。
    • 推送的映像檔標記已在存放區中由其他版本的映像檔使用。

舉例來說,請考慮具有下列特性的圖片:

  • 存放區位置:us-west1
  • 存放區名稱:my-repo
  • 專案 ID:my-project
  • 圖片名稱:test
  • 標記:staging
  • 摘要:sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d

如要使用標記識別圖片,請在圖片名稱後方加上 :staging

us-west1-docker.pkg.dev/my-project/my-repo/test:staging

如要使用摘要識別,請在映像檔名稱後面加上 @,然後再加上摘要:

us-west1-docker.pkg.dev/my-project/my-repo/test@sha256:4d11e24ba8a615cc85a535daa17b47d3c0219f7eeb2b8208896704ad7f88ae2d
如果您的專案 ID 包含冒號 (:),請參閱「網域範圍專案」。

在主控台的「Images」(映像檔) 畫面中,「Tag」(標記) 資料欄會列出映像檔的標記。按一下圖片的版本,即可查看包含「映像檔摘要」在內的中繼資料。

如要進一步瞭解標記,請參閱「為圖片加上標記」。

網域範圍專案

如果您的專案範圍是您的網域,則專案 ID 會包含後面加入冒號 (:) 的網域名稱。由於 Docker 處理冒號的方式有所不同,因此當您在 Artifact Registry 中指定映像檔時,必須將冒號字元換成正斜線。請使用下列格式來識別這些專案類型中的映像檔:

LOCATION-docker.pkg.dev/DOMAIN/PROJECT-ID/REPOSITORY/IMAGE@IMAGE-DIGEST

例如,ID 為 example.com:my-project 的專案可能會有下列圖片:

us-west1-docker.pkg.dev/example.com/my-project/my-repo/image-name

存放區名稱為網址格式

如要在 Google Cloud 主控台中存取存放區或存放區中的構件,請在完整名稱前方加上 https://

舉例來說,如要查看存放區 us-west1-maven.pkg.dev/my-project/my-repo,請使用下列網址:

https://us-west1-maven.pkg.dev/my-project/my-repo

如要查看圖片 us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image,請使用下列網址:

https://us-west1-docker.pkg.dev/example.com/my-project/my-repo/my-image

凡是具備存取存放區權限且已通過驗證的使用者,皆可使用這些連結。