從 Container Registry 轉換

Container Registry 已淘汰。自 2025 年 3 月 18 日起,Container Registry 將終止運作,且無法再將映像檔寫入 Container Registry。

Artifact Registry 託管的 gcr.io 網址 (包括 Google 擁有的映像檔,以及 gcr.io 網址) 不會受到 Container Registry 關閉影響。

如要進一步瞭解 Container Registry 淘汰事宜,以及如何遷移至 Artifact Registry,請參閱「Container Registry 淘汰事宜」。

建議您使用 Artifact Registry 服務,在 Google Cloud上儲存及管理容器映像檔。Artifact Registry 提供與 Container Registry 相同的容器管理功能,並包含其他功能和優點。Artifact Registry 是全代管服務,支援容器映像檔和非容器構件,可擴充 Container Registry 的功能。

您可以使用自動遷移工具,將 Container Registry 端點遷移至 Artifact Registry gcr.io 存放區,且不需停機或中斷服務。

新功能摘要

Artifact Registry 擴充了 Container Registry 的功能,提供下列功能:

如要進一步瞭解這些功能,請參閱功能比較

Google 維護的現有 Container Registry 映像檔

先前在 Container Registry 託管的大部分 Google 擁有映像檔,現在都託管在 Artifact Registry 的 gcr.io 存放區。您不需要變更網址即可擷取這些圖片。舉例來說,您仍可使用 Cloud Build 官方建構工具映像檔

mirror.gcr.io上的 Docker Hub 快取映像檔

Artifact Registry 會在 mirror.gcr.io 上快取經常存取的公開 Docker Hub 映像檔。如要進一步瞭解如何使用 mirror.gcr.io,請參閱「提取已快取的 Docker Hub 映像檔」。

選擇轉移選項

您可以透過以下兩種存放區,轉換至 Artifact Registry:

Artifact Registry 中的 gcr.io 存放區

對應至 Container Registry gcr.io 主機名稱的存放區。Artifact Registry 會將 Container Registry 主機的 gcr.io 要求重新導向至同一個 Google Cloud 專案中的對應 Artifact Registry 存放區。

在下列情況下,請使用 gcr.io 存放區:

  • 您希望盡量減少設定和配置作業,以便將現有映像檔和自動化作業遷移至 Artifact Registry。
  • 您不需要在其他Google Cloud 專案或區域中設定 Artifact Registry 存放區。
Artifact Registry 中的 pkg.dev 存放區

pkg.dev Artifact Registry 存放區,支援所有功能,且完全獨立於現有的 Container Registry 主機。

在下列情況下,請使用 pkg.dev 存放區:

  • 您必須遵守法規,將資料儲存在特定區域。支援 gcr.io 網域的存放區僅適用於與 Container Registry 主機相同的多重區域:asiaeuus
  • 您想在與 Container Registry 所在專案不同的專案中,設定 Artifact Registry 存放區。
  • 您想重新設計圖片的儲存方式和位置。例如:

    • 在與其他區域資源 (包括 Cloud Run 和 Google Kubernetes Engine 等執行階段) 相同的區域中建立存放區。 Google Cloud
    • 在靠近團隊的區域中設定存放區。舉例來說,您可以改在澳洲區域建立存放區,而非 asia 多區域;也可以改在南美洲區域建立存放區,而非 us 多區域。
    • 在相同專案和位置中建立多個 Docker 存放區,並採用不同的身分與存取權管理政策。舉例來說,您可以在 us-east1 區域中設定開發存放區和正式版存放區,並為開發人員設定不同層級的存取權。
  • 您想建立虛擬存放區,做為從多個上游 pkg.dev 標準模式存放區下載內容的單一端點。

  • 您想使用遠端存放區做為外部來源的 Proxy。

標準、遠端、虛擬 pkg.devgcr.io 存放區可以共存。舉例來說,您可以在 Artifact Registry 中建立 gcr.io 存放區,以便轉換現有的 Container Registry 設定,並為新工作建立 pkg.dev 存放區。

使用我們的轉換工具

使用下列工具找出使用 Container Registry 的專案、將映像檔從 Container Registry 複製到 Artifact Registry,以及自動將多個專案從 Container Registry 遷移至 Artifact Registry。

  • 查看 Container Registry 用量
  • 使用自動遷移工具,將專案從 Container Registry 遷移至 Artifact Registry、複製映像檔,並選取偏好的轉換存放區類型。
  • 使用自動遷移工具、gcrane、Docker 或 gcloud CLI,將映像檔從 Container Registry 複製到 Artifact Registry。

功能比較

下表摘要列出 Container Registry 和 Artifact Registry 之間的差異。

功能 Container Registry Artifact Registry
支援的格式 僅限容器映像檔 多種構件格式,包括容器映像檔、語言套件和 OS 套件。
網域名稱 gcr.io pkg.dev

如果您設定 gcr.io 存放區,Artifact Registry 也能儲存 gcr.io 網域的映像檔。

存放區模式 不適用
  • 標準:儲存構件。
  • 遠端:快取從上游來源 (例如 Docker Hub) 要求而來的構件。
  • 虛擬:單一端點,多個上游存放區。
建立登錄檔 只要將第一個映像檔推送到註冊資料庫主機,即可建立該主機。

Container Registry 會將映像檔儲存在 Google Cloud 專案的 Cloud Storage 值區中,且必須直接對值區套用授與註冊資料庫專屬權限等動作。

建立存放區與推送和提取是不同的作業,可清楚區分存放區管理與存放區使用。
  • 為確保回溯相容性,您可以設定 gcr.io 存放區。初始設定包括為專案中的每個 Container Registry 主機自動建立 Artifact Registry 存放區,以及將 gcr.io 重新導向至對應的 Artifact Registry 存放區。
  • 如要對 pkg.dev 網域提出所有推送和提取要求,存放區必須已存在。

在 Artifact Registry 中, Google Cloud 專案沒有要管理的 Cloud Storage bucket。您可以直接在存放區中執行圖片管理動作。

登記地點 每個 Google Cloud 專案最多只能有四個多區域登錄主機。 在區域或多區域中建立多個可個別控制的存放區。
存取控管
  • 使用 Cloud Storage 角色授予存取權。
  • 您可以限制存取多區域中儲存的所有映像檔,但無法限制存取個別存放區。舉例來說,您可以限制專案 my-projectus.gcr.io 的存取權,但無法授予 us.gcr.io/my-project/team1us.gcr.io/my-project/team2 底下映像檔的特定權限。
驗證 提供多種驗證方法,可透過第三方用戶端推送及提取映像檔。 Artifact Registry 支援與 Container Registry 相同的驗證方法。詳情請參閱「為 Docker 設定驗證機制」。
客戶自行管理的加密金鑰 (CMEK) 使用 CMEK 加密含有圖片的儲存空間值區。 使用CMEK 加密個別存放區。
使用 Google Cloud 控制台 在 Google Cloud 控制台的「Container Registry」部分,查看及管理 Container Registry 映像檔。 在 Google Cloud 控制台的「Artifact Registry」部分中,查看 Artifact Registry 和 Container Registry 存放區的清單。您可以在這個頁面管理 Artifact Registry 存放區和映像檔。

如果您點選 Container Registry 存放區,系統會將您導向 Google Cloud 控制台的「Container Registry」部分,顯示映像檔清單。

使用 gcloud CLI 和 API 指令 使用 gcloud container images 指令。指令支援縮短的摘要。如果您未指定完整摘要字串,Container Registry 會嘗試根據部分字串找出正確的映像檔。

Container Registry 沒有 REST 或 RPC API。

使用 gcloud artifacts docker 指令。指令不支援縮短的摘要。

如要比較 Container Registry 和 Artifact Registry 的 gcloud CLI 指令,請參閱 gcloud CLI 指令比較

Artifact Registry 提供 REST 和 RPC API,可管理存放區和構件。

Pub/Sub 通知 發布對「gcr」主題所做的變更。 發布對「gcr」主題所做的變更。如果您在與現有 Container Registry 服務相同的專案中建立存放區,現有的 Pub/Sub 設定會自動運作。

詳情請參閱「設定 Pub/Sub 通知」。

稽核記錄 Container Registry 不提供登錄活動的稽核記錄。 使用 Cloud Logging 追蹤存放區的變更。
已快取的 Docker Hub 映像檔 mirror.gcr.io提取式快取,可儲存所有使用者最常要求的 Docker Hub 映像檔。mirror.gcr.io 現在已在 Artifact Registry 上架。 mirror.gcr.io 現在已在 Artifact Registry 上架。除非您在 VPC Service Controls 範圍內使用 mirror.gcr.io,否則無須採取任何行動。如要進一步瞭解如何在 VPC Service Controls 範圍內使用 mirror.gcr.io,請參閱「搭配使用 Artifact Registry 與 VPC Service Controls」。
VPC Service Controls 您可以將 Container Registry 新增至服務範圍 您可以將 Artifact Registry 新增至服務範圍。
使用 Artifact Analysis 儲存及分析中繼資料 針對支援的 OS 映像檔,透過隨選掃描功能掃描 OS 和語言套件安全漏洞。自動掃描只會傳回 OS 安全漏洞資訊。進一步瞭解掃描類型
隨選掃描
自動掃描
  • Google Cloud CLI 指令 gcloud container images 包含用於查看掃描結果的標記,包括安全漏洞和其他中繼資料。
  • 掃描只會針對 Container Registry 中 支援的作業系統,傳回映像檔的作業系統安全漏洞資訊。
透過隨選和自動掃描功能,掃描 OS 和語言套件安全漏洞。進一步瞭解掃描類型
隨選掃描
自動掃描
  • Google Cloud CLI 指令 gcloud artifacts docker images 包含可查看掃描結果的標記,包括安全漏洞和其他中繼資料。
  • 掃描結果會顯示 Artifact Registry 中映像檔的 OS 安全漏洞資訊 (適用於 支援的作業系統),以及支援和不支援作業系統的語言套件安全漏洞資訊。
影像串流 無法使用 將 Artifact Registry 中的映像檔串流至 GKEGoogle Cloud Serverless for Apache Spark,即可加快自動調度資源的速度、縮短 Pod 啟動時間,並在提取大型映像檔時減少延遲。
Cloud Run 來源部署作業 無法使用 從來源部署: 您可以使用單一 gcloud CLI 指令,從原始碼建構容器映像檔、將映像檔儲存在 Artifact Registry,然後部署至 Cloud Run。
定價 Container Registry 定價依據 Cloud Storage 用量而定,包括儲存空間和網路資料傳輸。由於登錄主機僅適用於多區域,因此資料移轉費用包括將映像檔部署至 Google Cloud Artifact Registry 採用獨立的定價,依據儲存空間和網路資料傳輸量計費。
配額 Container Registry 設有固定的要求限制。此外,您也會受到 Cloud Storage 配額限制。詳情請參閱配額與限制說明文件。 Artifact Registry 設有專案和使用者配額。每位使用者的配額預設沒有上限,但您可以設定每位使用者的上限,避免單一使用者耗用過多專案層級配額。

gcloud 指令比較

下表摘要列出 gcloud CLI 中的 Container Registry 指令,以及對應的 Artifact Registry 指令。按一下表格中的連結,即可查看指令的參考頁面。

下表未列出所有可用的 Artifact Registry 指令,這些指令在 Container Registry 中沒有對應項目。如需完整的 Artifact Registry 指令參考資料,請參閱 gcloud artifacts 說明文件。

作業 Container Registry Artifact Registry
建立存放區 不適用。 gcloud artifacts repositories create
刪除存放區 不適用。 gcloud artifacts repositories delete
列出映像檔 gcloud container images list gcloud artifacts docker images list
列出標記 gcloud container images list-tags gcloud artifacts docker tags list
新增標記 gcloud container images add-tag gcloud artifacts docker tags add
刪除標記 gcloud container images untag gcloud artifacts docker tags delete
描述圖片 gcloud container images describe gcloud artifacts docker images list --include-tags