淘汰功能

下列為影響 Container Registry 的淘汰通知。另請參閱 Docker 的淘汰通知與通知的changelog

1.6 版以下的 Docker Registry v1 API 和 Docker 用戶端

我們在 2016 年 12 月 14 日宣佈 Docker v1.13 於 2017 年 2 月 28 日發佈後,Docker Engine 將不再支援 v1 通訊協定

Container Registry 也因此不支援 1.6 版以下的 Docker 用戶端。2017 年 2 月 28 日之後,1.6 版以下的 Docker 用戶端無法與 Container Registry API 進行通訊。此外,您也無法提供儲存在 Container Registry 且採用 v1 通訊協定的任何容器映像檔。

如要查看這項變更是否會影響您的映像檔,請執行下列步驟:

  1. 執行下列指令,檢查您使用的 Docker 用戶端版本:

      gcloud docker -- --version
    

    如果用戶端版本低於 1.6 版,則必須更新 Docker 用戶端,然後必須將您的映像檔更新為採用 Docker Registry v2 通訊協定。

  2. 提取受影響的 v1 映像檔:

      gcloud docker -- pull gcr.io/[PROJECT-ID]/[IMAGE]
    
  3. 再次推送映像檔:

      gcloud docker -- push gcr.io/[PROJECT-ID]/[IMAGE]
    

如要進一步瞭解 Docker Registry 的 v1 和 v2 通訊協定,請參閱容器映像檔格式

非標準 Container Registry 值區

自 2017 年 2 月 28 日起,「自備值區」的註冊資料庫 (如 b.gcr.iobucket.gcr.io) 已遭到淘汰而無法使用。Container Registry 不再提供託管在這些值區中的任何容器映像檔。

如要繼續使用這些映像檔,您必須將映像檔移動到標準 Container Registry 位置,像是 gcr.ious.gcr.ioasia.gcr.ioeu.gcr.io

如要將容器映像檔從非標準值區遷移到標準值區,請執行下列步驟:

  1. 提取非標準值區中的映像檔:

    gcloud docker -- pull b.gcr.io/[BUCKET-NAME]/[IMAGE]:[TAG]
    
  2. 使用標準註冊資料庫位置名稱重新標記映像檔:

    gcloud docker -- tag b.gcr.io/[BUCKET-NAME]/[IMAGE]:[TAG] [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
    
  3. 使用目標專案 ID,將映像檔重新推送到 Container Registry (使用 Docker 用戶端 1.6 版以上的版本):

    gcloud docker -- push [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
    

變更容器映像檔中繼資料的儲存空間

從 2017 年 2 月 28 日開始,Container Registry 變更了容器「映像檔中繼資料」檔案的儲存位置。映像檔中繼資料是指映像檔名稱、映像檔標記和映像檔資訊清單等資訊,這些資訊透過摘要來標示構成映像檔的分層檔案。

如果您是直接存取或操作 Cloud Storage 值區中的中繼資料檔案 (如變更記錄或物件生命週期管理) 以進行刪除作業,則這項變更可能會對您造成影響。

先前您將映像檔推送到 Container Registry 時,Container Registry API 會將這些映像檔的中繼資料和分層檔案儲存在專案的 Cloud Storage 值區中。從 2017 年 2 月 28 日開始,Container Registry 會將映像檔中繼資料儲存在高效能的後端資料庫,以改善效能和功能性。映像檔分層檔案仍然儲存在 Cloud Storage 中。

系統會自動新增 Container Registry 服務帳戶到您的專案,其名稱類似於 [PROJECT-NUMBER]@containerregistry.iam.gserviceaccount.com。這個服務帳戶會啟動新的 Container Registry API 並管理遷移作業。請勿將此服務帳戶刪除或降級,或是停用新的 Container Registry API。

gcloud docker 指令和 18.03 版以上的 Docker 用戶端

自 2018 年 4 月 3 日起,18.03 版以上的 Docker 用戶端不再支援 gcloud docker

如要針對 18.03 版以上的用戶端版本驗證傳送至 Container Registry 的要求,請使用 gcloud 做為 Docker 憑證輔助程式。如要進行此操作,請執行以下指令:

gcloud auth configure-docker

或者,您也可以使用其他進階驗證方法