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 和 Dataproc 無伺服器,以縮短工作負載啟動時間。
- 從原始碼部署至 Cloud Run。
- 稽核記錄:用於記錄存放區活動。
- 強制執行機構政策,包括使用客戶管理的加密金鑰 (CMEK) 和位置限制進行加密。
- 在容器中掃描 OS 和語言套件安全漏洞。
- 虛擬存放區:匯總單一主機後方的多個存放區。
- 遠端存放區:快取來自上游來源 (例如 Docker Hub 或 Maven Central) 的構件。
如要進一步瞭解這些功能,請參閱功能比較。
Google 維護的現有 Container Registry 映像檔
先前在 Container Registry 中託管的大部分 Google 自有映像檔,現在都已託管至 gcr.io
存放區中的 Artifact Registry。您不需要變更網址,即可擷取這些圖片。舉例來說,您還是可以使用 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 存放區。
pkg.dev
Artifact Registry 中的存放區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 值區需要管理。您可以直接在存放區上執行圖片管理動作。 |
註冊位置 | 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 指令。指令不支援精簡摘要。如要比較容器註冊服務和 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 或 Dataproc 無伺服器,以便加快調整資源配置、加快 Pod 啟動速度,並縮短擷取大型映像檔時的延遲時間。 |
Cloud Run 來源部署作業 | 無法使用 | 原始碼部署功能可讓您使用單一 gcloud CLI 指令,從原始碼建構容器映像檔、將映像檔儲存在 Artifact Registry 中,然後部署至 Cloud Run。 |
定價 | Container Registry 的定價取決於 Cloud Storage 用量,包括儲存空間和網路資料傳輸。由於註冊主機僅適用於多區域,因此資料移轉費用包括將映像檔部署至 Google Cloud | Artifact Registry 有其專屬的定價,依據儲存空間和網路資料傳輸量計算。 |
配額 | Container Registry 有固定的要求限制。也適用 Cloud Storage 配額。詳情請參閱配額與限制說明文件。 | Artifact Registry 有專案和使用者配額。每位使用者的配額預設為無限制,但您可以設定每位使用者的上限,避免單一使用者消耗過多的專案層級配額。 |
gcloud 指令比較
下表列出 Container Registry 指令和 gcloud CLI 中的相等 Artifact Registry 指令。按一下表格中的連結,即可查看指令的參考頁面。
表格中並未列出所有可用的 Artifact Registry 指令,這些指令在 Container Registry 中沒有對應項目。如需完整的 Artifact Registry 指令參考資料,請參閱 gcloud artifacts
說明文件。