當您使用 API、gcloud
和 docker
指令與存放區互動時,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.1
或development
。標記只能指向一個圖片版本。在 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
:
),請參閱「網域範圍專案」。
在主控台的「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
凡是具備存取存放區權限且已通過驗證的使用者,皆可使用這些連結。