容器概念

Artifact Registry 可讓您在存放區中儲存及整理容器映像檔和其他構件,以便管理及部署各環境的工作負載。您可以使用映像檔層、標記和資訊清單摘要,控管映像檔版本和管理部署作業。

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

登錄檔

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

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 映像檔中的一個層。在登錄檔中,具有通用層的映像檔會共用這些層,進而提高儲存效率。為確保安全,不同登錄檔之間不會共用層。

刪除容器映像檔時,系統不會立即刪除圖層。系統每天會刪除登錄檔中未被任何映像檔參照的層。

標記

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

如果使用不可變更的標記,則不得執行下列動作:

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

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 的特定標記和資訊清單,請參閱「管理映像檔」和「使用容器映像檔」。

圖片預熱

對於使用圖片串流的延遲時間敏感型應用程式,等待在新節點或執行個體上首次提取圖片 (通常稱為「冷啟動」) 可能會造成不必要的延遲。預先暖機功能可讓您在要求圖片前,明確開始將圖片下載到圖片串流快取中。這個程序可確保 GKE 叢集要求映像檔時,映像檔能快速交付。

如要預先暖機映像檔,請使用 Artifact Registry API。如需操作說明,請參閱「使用圖片預先暖機功能縮短延遲時間」。

後續步驟