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