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 Kubernetes Engine 和 Google Cloud Serverless for Apache Spark,縮短工作負載啟動時間。
- 從來源部署至 Cloud Run。
- 存放區活動的稽核記錄。
- 強制執行機構政策,包括使用客戶自行管理的加密金鑰 (CMEK) 加密,以及位置限制。
- 掃描容器中的 OS 和語言套件安全漏洞。
- 虛擬存放區:匯總單一主機後方的多個存放區。
- 遠端存放區:從上游來源 (例如 Docker Hub 或 Maven Central) 快取構件。
如要進一步瞭解這些功能,請參閱功能比較。
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 主機相同的多重區域:asia
、eu
和us
。 - 您想在與 Container Registry 所在專案不同的專案中,設定 Artifact Registry 存放區。
您想重新設計圖片的儲存方式和位置。例如:
- 在與其他區域資源 (包括 Cloud Run 和 Google Kubernetes Engine 等執行階段) 相同的區域中建立存放區。 Google Cloud
- 在靠近團隊的區域中設定存放區。舉例來說,您可以改在澳洲區域建立存放區,而非
asia
多區域;也可以改在南美洲區域建立存放區,而非us
多區域。 - 在相同專案和位置中建立多個 Docker 存放區,並採用不同的身分與存取權管理政策。舉例來說,您可以在
us-east1
區域中設定開發存放區和正式版存放區,並為開發人員設定不同層級的存取權。
您想建立虛擬存放區,做為從多個上游
pkg.dev
標準模式存放區下載內容的單一端點。您想使用遠端存放區做為外部來源的 Proxy。
- 您必須遵守法規,將資料儲存在特定區域。支援
標準、遠端、虛擬 pkg.dev
和 gcr.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 也能儲存 |
存放區模式 | 不適用 |
|
建立登錄檔 | 只要將第一個映像檔推送到註冊資料庫主機,即可建立該主機。
Container Registry 會將映像檔儲存在 Google Cloud 專案的 Cloud Storage 值區中,且必須直接對值區套用授與註冊資料庫專屬權限等動作。 |
建立存放區與推送和提取是不同的作業,可清楚區分存放區管理與存放區使用。
在 Artifact Registry 中, Google Cloud 專案沒有要管理的 Cloud Storage bucket。您可以直接在存放區中執行圖片管理動作。 |
登記地點 | 每個 Google Cloud 專案最多只能有四個多區域登錄主機。 | 在區域或多區域中建立多個可個別控制的存放區。 |
存取控管 |
|
|
驗證 | 提供多種驗證方法,可透過第三方用戶端推送及提取映像檔。 | 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 安全漏洞資訊。進一步瞭解掃描類型。
|
透過隨選和自動掃描功能,掃描 OS 和語言套件安全漏洞。進一步瞭解掃描類型。
|
影像串流 | 無法使用 | 將 Artifact Registry 中的映像檔串流至 GKE 或 Google 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
說明文件。