容器概念

本文件介紹容器映像檔相關的重要概念,包括登錄、存放區和構件。我們也提供一些基本資訊,說明這些概念如何套用至 Artifact Registry 和 Container Registry。

本頁中的 Artifact Registry 範例主要參照 Docker 格式和 gcr.io 存放區。詳情請參閱「支援的格式」和「存放區總覽」。

登錄檔

登錄會儲存及發布容器映像檔和構件,並在repositories中依名稱分類。註冊中心可包含單一或多個存放區,且可設為公開或私人。

Docker Hub 和 Artifact Registry 等登錄檔服務提供建立公開或私人存放區的選項。提取公開圖片時,請務必瞭解可能的安全性疑慮。如要進一步瞭解如何監控漏洞並減少依附元件足跡,請參閱依附元件管理相關說明。

註冊資料庫會整理成存放個別容器映像檔的存放區。您可以使用 Artifact Registry 在單一專案中建立多個存放區,並將特定區域或多區域位置與每個存放區建立關聯。相關存放區可依標籤分組。

Artifact Registry 存放區和映像檔管理

在 Artifact Registry Docker 格式存放區中,您可以在同一個存放區中儲存多個名稱不同的容器映像檔。每個映像檔版本都會以其映像檔摘要做為識別,並可與標記相關聯。標記可以是可變更或不可變更的。如要進一步瞭解容器映像檔版本和標記,請參閱「容器映像檔版本」。

Artifact Registry 通常會參照映像檔路徑的部分內容,用於識別專案、區域或多區域位置,以及映像檔名稱和標記資訊清單摘要,以便識別正確的版本。

例如:

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-west1 是存放區的位置
  • docker.pkg.dev 是 Docker 格式存放區的主機名稱。
  • PROJECT 是Google Cloud 專案 ID 建立的命名空間。
  • quickstart-docker-repo 是專案下用於儲存圖片的命名空間。在 Artifact Registry 中,這個路徑部分稱為存放區。
  • quickstart-image 是所有 quickstart-image 版本的名稱,通常稱為「映像檔」
  • tag1 是指定映像檔版本的標記。

圖片

成果和映像檔皆可儲存在 Artifact Registry 中。產物可以是任何東西:文字檔、Docker 映像檔或 Helm 圖表,而映像檔通常是指容器映像檔。容器映像檔是軟體套件,內含在任何環境中執行的所有必要元素。詳情請參閱「什麼是容器」。

映像檔會推送或上傳至存放區,並從存放區提取或下載。如要指定正確的映像檔和版本,請務必指定專屬登錄和構件。

如要進一步瞭解 Artifact Registry 中的存放區和映像檔名稱,請參閱「存放區和映像檔名稱」。

資料層

存放區中儲存的容器映像檔會使用逐漸建構。不同的圖片可以使用部分相同的圖層。圖層的定義方式會因圖片類型而異。舉例來說,Dockerfile 中的每個指示都會對應至 Docker 映像檔中的一個層。在註冊中心中,具有共用圖層的圖片會共用這些圖層,提高儲存效率。為確保安全性,不同註冊機制之間不會共用圖層。

刪除容器映像檔時,系統不會立即刪除資料層。註冊資料庫中的任何圖片都不會參照的圖層,每天都會刪除。

標記

使用者在將映像檔推送或拉取至存放區時,會新增標記,以指定映像檔的版本。圖片可以有一個或多個標記,也可以完全沒有標記。如果您使用可變更的標記,並且以相同標記推送兩次圖片,則系統會從第一個圖片移除標記,並將標記移至第二個圖片,讓第一個圖片沒有標記。您仍可使用資訊清單摘要存取未標記的圖片。

如果您使用不可變動的代碼,則無法執行下列動作:

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

當未標記的映像檔推送至 Google Play 時,系統會加上 latest 標記。

例如:

docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app

將圖片推送至 hello-app:latest

docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app

會擷取圖片 hello-app:latest

請注意,如果將圖片推送至標記為 latest 以外的存放區,系統不會新增 latest 標記,因此 latest 圖片可能會落後於最新變更。建議您使用 latest 以外的標記來發布版本。

資訊清單

圖片資訊清單會明確識別並指定每個圖片中的圖層。資訊清單會透過稱為資訊清單摘要的 SHA-256 雜湊來識別。與標記相比,資訊清單摘要更可靠且安全,因為在具有可變更標記的存放區中,同一個映像檔的多個版本可推送至同一個標記,導致部分映像檔沒有標記,而每個映像檔都會透過其資訊清單摘要指定唯一標記。

如果您使用工具掃描或分析圖片,這些工具的結果只適用於掃描的圖片。為了確保您部署的是已掃描的圖片,請勿依賴標記,因為標記所參照的圖片可能會變更。

如要進一步瞭解 Artifact Registry 專屬的標記和資訊清單,請參閱「管理映像檔」和「使用容器映像檔」。

後續步驟