本頁說明如何管理 Docker 存放區中的容器映像檔。映像檔管理包含列出存放區中的映像檔、新增/刪除標記、複製映像檔至新存放區,以及刪除映像檔。
如要瞭解如何推送及提取映像檔,請參閱「推送及提取映像檔」。
事前準備
- 如果目標存放區不存在,請建立新的存放區。
- 確認您具備存放區的必要權限。
- (選用) 設定 gcloud 指令的預設值。
必要的角色
如要取得管理映像檔所需的權限,請要求管理員在存放區中授予您下列 IAM 角色:
-
查看映像檔、映像檔中的檔案和標記:
Artifact Registry 讀取者 (
roles/artifactregistry.reader
) -
使用 Artifact Registry 標記圖片或編輯標記:
Artifact Registry 寫入者 (
roles/artifactregistry.writer
) -
刪除映像檔或移除標記:
Artifact Registry 存放區管理員 (
roles/artifactregistry.repoAdmin
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
列出圖片
存放區模式:標準
您可以使用 Trusted Cloud console 或 gcloud CLI 列出映像檔。
主控台
如要查看存放區中的映像檔:
在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。
按一下含有容器映像檔的存放區。
按一下圖片即可查看版本。
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 存放區中的映像檔。在存放區中,每個版本的映像檔會使用不重複的標記。因此,如果您有多個版本,每個標記都只會套用於其中一個版本。如果您為映像檔加上的標記已經在使用中,則會將該標記從原始版本移動到新加上標記的版本。
主控台
如要為存放區中的映像檔加上標記:
在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。
按一下圖片即可查看圖片版本。
選取要標記的圖片版本。
在所選版本的資料列中,按一下「更多動作」圖示 (
),然後按一下「編輯代碼」。
在欄位中輸入新的標記,然後按一下 [SAVE] (儲存)。
gcloud
如要為存放區中的映像檔加上標記,請使用映像檔摘要或標記指定映像檔版本,然後指定要新增的標記。執行下列其中一個指令:
gcloud artifacts docker tags add 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 的映像檔中移除。
主控台
在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。
按一下圖片即可查看圖片版本。
選取要取消標記的圖片版本。
在所選版本的資料列中,按一下「更多動作」圖示 (
),然後按一下「編輯代碼」。
刪除標記,然後按一下 [SAVE] (儲存)。
gcloud
如要刪除標記並從圖片中移除,請執行下列指令:
gcloud artifacts docker tags delete LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE:TAG
更改下列內容:
刪除映像檔
存放區模式:標準
您可以刪除整個容器映像檔,也可以刪除與標記或摘要相關聯的特定映像檔版本。
- 圖片刪除後即無法復原。
- 刪除圖片不會立即刪除參照的圖層。系統每天都會刪除未參照的圖層。
您也可以使用其他工具管理未使用的圖片。舉例來說,gcr-cleaner 工具會根據不同條件尋找並刪除舊映像檔。移除未使用的圖片有助於降低儲存空間費用。gcr-cleaner
工具並非 Google 官方產品。
如要從 Trusted Cloud 控制台或 gcloud CLI 刪除映像檔,請按照下列步驟操作:
主控台
在 Trusted Cloud 控制台中開啟「Repositories」(存放區) 頁面。
按一下映像檔名稱,即可查看該映像檔的版本。
選取要刪除的版本。
按一下 [刪除]。
在確認對話方塊中,按一下「刪除」。
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
可移除套用至圖片版本的所有標記。在下列情況下,您可以使用這個標記強制刪除映像檔版本:- 您指定了標記,但映像檔版本還有其他相關聯的標記。
- 您指定的映像檔摘要至少有一個標記。