管理圖片

本頁說明如何管理 Docker 存放區中的容器映像檔。映像檔管理包含列出存放區中的映像檔、新增/刪除標記、複製映像檔至新存放區,以及刪除映像檔。

如要瞭解如何推送及提取映像檔,請參閱「推送及提取映像檔」。

事前準備

  1. 如果目標存放區不存在,請建立新的存放區
  2. 確認您具備存放區的必要權限
  3. (選用) 設定 gcloud 指令的預設值

必要的角色

如要取得管理映像檔所需的權限,請要求管理員在存放區中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

列出圖片

存放區模式標準

您可以使用 Trusted Cloud console 或 gcloud CLI 列出映像檔。

主控台

如要查看存放區中的映像檔:

  1. 在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。

    開啟「存放區」頁面

  2. 按一下含有容器映像檔的存放區。

  3. 按一下圖片即可查看版本。

gcloud

如要列出已設定預設值的預設專案、存放區和位置中的所有映像檔,請執行下列指令:

gcloud artifacts docker images list

如要列出特定位置的存放區中的映像檔,請執行下列指令:

gcloud artifacts docker images list LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY

如要列出特定映像檔的所有摘要和標記,請執行下列指令:

gcloud artifacts docker images list LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE \
--include-tags

替換下列值:

  • LOCATION 是存放區的區域位置
  • PROJECT 是您的 Trusted Cloud by S3NS 專案 ID
  • REPOSITORY 是儲存映像檔的存放區名稱。
  • IMAGE 是存放區中的映像檔名稱。
  • --include-tags 顯示所有版本的映像檔,包括摘要和標記。如果省略這個旗標,傳回的清單只會包含頂層容器映像檔。

舉例來說,假設圖片具有下列特徵:

  • 存放區位置:u-france-east1
  • 存放區名稱:my-repo
  • 專案 ID:my-project
  • 圖片名稱:my-image

完整的存放區名稱為:

u-france-east1-docker.s3nsregistry.fr/my-project/my-repo

完整映像檔名稱為:

u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image

如要瞭解圖片名稱格式的詳細資料,請參閱「存放區和圖片名稱」。

列出檔案

存放區模式標準

您可以列出存放區中的檔案、指定容器映像檔所有版本中的檔案,或是特定映像檔版本中的檔案。

對於下列所有指令,您可以在指令中加入 --limit 標記,設定要傳回的檔案數量上限。

如要列出已設定預設值的預設專案、存放區和位置中的所有檔案,請執行下列指令:

gcloud artifacts files list

如要列出特定專案、存放區和位置中的檔案,請執行下列指令:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

如要列出特定容器映像檔所有版本的檔案:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

如要列出特定容器映像檔版本的文件:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
如要列出特定標記的檔案,請執行下列操作:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

替換下列值:

  • LOCATION:存放區的區域位置
  • PROJECT:您的 Trusted Cloud by S3NS 專案 ID
  • REPOSITORY:儲存映像檔的存放區名稱。
  • PACKAGE:圖片名稱。
  • VERSION:圖片摘要,開頭為 sha256: 的字串。
  • TAG:與容器映像檔相關聯的標記。

範例

請參考下列圖片資訊:

  • 專案:my-project
  • 存放區:my-repo
  • 存放區位置:u-france-east1
  • 圖片:my-app

下列指令會列出預設專案u-france-east1 位置的 my-repo 存放區內所有檔案:

gcloud artifacts files list \
    --location=u-france-east1 \
    --repository=my-repo
下列指令會列出映像檔版本中含有摘要 sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356 的檔案

gcloud artifacts files list \
    --project=my-project \
    --location=u-france-east1 \
    --repository=my-repo \
    --package=my-app \
    --version=sha256:88b205d7995332e10e836514fbfd59ecaf8976fc15060cd66e85cdcebe7fb356
下列指令會列出映像檔版本中帶有 1.0-dev 標記的檔案

gcloud artifacts files list \
    --project=my-project \
    --location=u-france-east1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

為映像檔加上標記

您可以標記 Artifact Registry 存放區中的現有映像檔,也可以在將映像檔推送至存放區前標記。

在存放區中標記映像檔

存放區模式標準

您可以使用Trusted Cloud console 或指令列,將標記新增至 Artifact Registry 存放區中的映像檔。在存放區中,每個版本的映像檔會使用不重複的標記。因此,如果您有多個版本,每個標記都只會套用於其中一個版本。如果您為映像檔加上的標記已經在使用中,則會將該標記從原始版本移動到新加上標記的版本。

主控台

如要為存放區中的映像檔加上標記:

  1. 在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。

    開啟「存放區」頁面

  2. 按一下圖片即可查看圖片版本。

  3. 選取要標記的圖片版本。

  4. 在所選版本的資料列中,按一下「更多動作」圖示 (更多動作),然後按一下「編輯代碼」

  5. 在欄位中輸入新的標記,然後按一下 [SAVE] (儲存)

gcloud

如要為存放區中的映像檔加上標記,請使用映像檔摘要或標記指定映像檔版本,然後指定要新增的標記。執行下列其中一個指令:

gcloud artifacts docker tags add IMAGE-VERSION TAG

地點

  • IMAGE-VERSION 是要加上標記的映像檔版本完整名稱,可使用映像檔摘要或映像檔版本上的現有標記。
  • TAG 是要新增的標記完整名稱

舉例來說,假設圖片具有下列特徵:

  • 存放區位置:u-france-east1
  • 存放區名稱:my-repo
  • 專案 ID:my-project
  • 圖片名稱:my-image
  • 現有代碼:iteration6-final
  • 要新增的代碼:release-candidate

如要將 release-candidate 標記新增至標記為 iteration6-final 的映像檔版本,請執行下列指令:

gcloud artifacts docker tags add \
u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:iteration6-final \
u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:release-candidate

如要瞭解映像檔名稱格式的詳細資料,請參閱「存放區和映像檔名稱」。

為本機映像檔加上標記

如要將任何本機映像檔推送到 Artifact Registry,您必須先為映像檔加上存放區名稱的標記,接著再推送映像檔。如需相關操作說明,請參閱「推送及提取」。

取消映像檔的標記

存放區模式標準

您可以使用Trusted Cloud console 或指令列,將標記從 Artifact Registry 的映像檔中移除。

主控台

  1. 在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。

    開啟「存放區」頁面

  2. 按一下圖片即可查看圖片版本。

  3. 選取要取消標記的圖片版本。

  4. 在所選版本的資料列中,按一下「更多動作」圖示 (更多動作),然後按一下「編輯代碼」

  5. 刪除標記,然後按一下 [SAVE] (儲存)

gcloud

如要刪除標記並從圖片中移除,請執行下列指令:

 gcloud artifacts docker tags delete LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE:TAG

更改下列內容:

  • LOCATION 是存放區的區域位置
  • PROJECT 是您的 Trusted Cloud by S3NS 專案 ID
  • REPOSITORY 是儲存映像檔的存放區名稱。
  • IMAGE 是存放區中的映像檔名稱。
  • TAG 是要刪除版本的標記。

刪除映像檔

存放區模式標準

您可以刪除整個容器映像檔,也可以刪除與標記或摘要相關聯的特定映像檔版本。

  • 圖片刪除後即無法復原。
  • 刪除圖片不會立即刪除參照的圖層。系統每天都會刪除未參照的圖層。

您也可以使用其他工具管理未使用的圖片。舉例來說,gcr-cleaner 工具會根據不同條件尋找並刪除舊映像檔。移除未使用的圖片有助於降低儲存空間費用。gcr-cleaner 工具並非 Google 官方產品。

如要從 Trusted Cloud 控制台或 gcloud CLI 刪除映像檔,請按照下列步驟操作:

主控台

  1. 在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。

    開啟「存放區」頁面

  2. 按一下映像檔名稱,即可查看該映像檔的版本。

  3. 選取要刪除的版本。

  4. 按一下 [刪除]

  5. 在確認對話方塊中,按一下「刪除」

gcloud

如要刪除映像檔和所有標記,請執行下列指令:

gcloud artifacts docker images delete LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE --delete-tags

如要刪除特定映像檔版本,請使用下列其中一個指令。

gcloud artifacts docker images delete LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

gcloud artifacts docker images delete LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

地點

  • LOCATION 是存放區的區域位置
  • PROJECT 是您的 Trusted Cloud by S3NS 專案 ID
  • REPOSITORY 是儲存映像檔的存放區名稱。
  • IMAGE 是存放區中的映像檔名稱。
  • TAG 是要刪除的版本標記。如果多個標記與同一個圖片版本建立關聯,您必須加入 --delete-tags,才能刪除圖片版本,而不必先移除標記。
  • IMAGE-DIGEST 是要刪除版本的 sha256 雜湊值。如果標記與映像檔摘要建立關聯,您必須加入 --delete-tags,才能刪除映像檔版本,而不必先移除標記。
  • --delete-tags 可移除套用至圖片版本的所有標記。在下列情況下,您可以使用這個標記強制刪除映像檔版本:
    • 您指定了標記,但映像檔版本還有其他相關聯的標記。
    • 您指定的映像檔摘要至少有一個標記。