管理圖片

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

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

事前準備

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

必要的角色

如要取得管理圖片所需的權限,請要求管理員授予您存放區的下列 IAM 角色:

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

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

列出圖片

存放區模式標準、遠端

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

存放區清單包含 Artifact Registry 和 Container Registry 存放區。如要使用 Container Registry 存放區中的映像檔,請參閱 Container Registry 說明文件,瞭解如何管理映像檔

主控台

如要查看存放區中的圖片,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

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

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

gcloud

如要設定預設值,並列出預設專案、存放區和位置中的所有圖片:

gcloud artifacts docker images list

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

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

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

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags

替換下列值:

  • LOCATION 是存放區的地區或多地區位置
  • PROJECT 是您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
  • REPOSITORY 是儲存映像檔的存放區名稱。
  • IMAGE 是存放區中的映像檔名稱。
  • --include-tags 會顯示所有圖片版本,包括摘要和標記。如果省略這個標記,傳回的清單只會包含最上層的容器映像檔。

舉例來說,請考慮具有下列特性的圖片:

  • 存放區位置:us-west1
  • 存放區名稱:my-repo
  • 專案 ID:my-project
  • 圖片名稱:my-image

完整的存放區名稱如下:

us-west1-docker.pkg.dev/my-project/my-repo

完整的圖片名稱如下:

us-west1-docker.pkg.dev/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:您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
  • REPOSITORY:圖片儲存的存放區名稱。
  • PACKAGE:圖片名稱。
  • VERSION:圖片摘要,以 sha256: 開頭的字串。
  • TAG:與容器映像檔相關聯的標記。

範例

請參考下列圖片資訊:

  • 專案:my-project
  • 存放區:my-repo
  • 存放區位置:us-west1
  • 圖片:my-app

下列指令會列出預設專案us-west1 位置的存放區 my-repo 中的所有檔案:

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

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

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

為映像檔加上標記

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

在存放區中標記圖片

存放區模式標準

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

主控台

如要為存放區中的映像檔加上標記,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

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

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

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

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

gcloud

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

gcloud artifacts docker tags add IMAGE-VERSION TAG

地點

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

舉例來說,請考慮具有下列特性的圖片:

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

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

gcloud artifacts docker tags add \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

如要進一步瞭解映像檔名稱格式 (包括網域範圍專案),請參閱「存放區和映像檔名稱」。

為本機映像檔加上標記

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

取消映像檔的標記

存放區模式標準

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

主控台

  1. 在 Google Cloud 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

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

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

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

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

gcloud

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

 gcloud artifacts docker tags delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

更改下列內容:

  • LOCATION 是存放區的地區或多地區位置
  • PROJECT 是您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (`:`),請參閱網域範圍專案
  • REPOSITORY 是儲存映像檔的存放區名稱。
  • IMAGE 是存放區中的映像檔名稱。
  • TAG 是您要刪除的版本標記。

刪除映像檔

存放區模式標準、遠端

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

  • 圖片刪除後即無法復原。
  • 刪除圖片並不會立即刪除參照的圖層。系統會每天刪除未參照的圖層。
  • 對於遠端存放區,系統會移除快取的映像檔副本。圖片仍可從上游來源取得。如果遠端存放區收到相同圖片的新要求,存放區會再次下載並快取該圖片。
您可以使用清理政策來控制構件儲存或刪除的時間和方式。

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

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

主控台

  1. 在 Google Cloud 控制台中開啟「Repositories」頁面。

    開啟「存放區」頁面

  2. 按一下圖片名稱,即可查看該圖片的版本。

  3. 選取要刪除的版本。

  4. 按一下 [刪除]

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

gcloud

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

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

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

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

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

地點

  • LOCATION 是存放區的地區或多地區位置
  • PROJECT 是您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
  • REPOSITORY 是儲存映像檔的存放區名稱。
  • IMAGE 是存放區中的映像檔名稱。
  • TAG 是您要刪除的版本標記。如果同一個圖片版本有數個標記,您必須先加入 --delete-tags,才能刪除圖片版本,而無須先移除標記。
  • IMAGE-DIGEST 是您要刪除的版本的 sha256 雜湊值。如果標記與圖片摘要相關聯,您必須先加入 --delete-tags,才能刪除圖片版本,而無須先移除標記。
  • --delete-tags 會移除套用至圖片版本的所有標記。這個標記可讓您在下列情況下強制刪除映像檔版本:
    • 您指定了標記,但該圖片版本與其他標記相關聯。
    • 您指定的圖片摘要至少包含一個標記。

後續步驟