將 Docker 容器映像檔儲存在 Artifact Registry 中
Artifact Registry:讓您在單一位置集中管理私人套件和 Docker 容器映像檔。
本快速入門導覽課程會說明完成下列作業的方法:
- 在 Artifact Registry 中建立私人 Docker 存放區
- 設定驗證方法
- 將映像檔推送至存放區
- 從存放區提取映像檔
如要直接在 Google Cloud 控制台按照逐步指南操作,請按一下「Guide me」(逐步引導):
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry API.
選擇殼層
如要完成本快速入門,請使用 Cloud Shell 或本機殼層。
- Cloud Shell
- Cloud Shell 是殼層環境,用於管理託管在 Google Cloud上的資源。這個環境已預先安裝 Docker 和 Google Cloud CLI,這是 Google Cloud的主要指令列介面。
- 本機殼層
- 如果您想要使用本機殼層,則必須在您的環境中安裝 Docker 和 gcloud CLI。
啟動 Cloud Shell
請執行下列步驟來啟動 Cloud Shell:
前往 Google Cloud 控制台。
按一下「Activate Cloud Shell」按鈕:
。
此時 Cloud Shell 工作階段會在主控台底部的頁框中開啟,您可以使用這個殼層來執行 gcloud
指令。
設定本機 Shell
如要安裝 gcloud CLI 和 Docker,請執行下列步驟:
安裝 gcloud CLI。如要更新現有安裝項目,請執行
gcloud components update
指令。如果尚未安裝 Docker,請先安裝。
Docker 需要特殊權限才能與登錄檔互動。在 Linux 或 Windows 上,將用來執行 Docker 指令的使用者新增至 Docker 安全性群組。在 macOS 上,Docker Desktop 會以超級使用者身分在虛擬機器上執行,因此不需要執行這個步驟。
Linux
Docker 安全群組稱為
docker
。如要新增使用者名稱,請執行下列指令:sudo usermod -a -G docker ${USER}
Windows
Docker 安全群組稱為
docker-users
。如要透過管理員命令提示字元新增使用者,請執行下列指令:net localgroup docker-users DOMAIN\USERNAME /add
地點
- DOMAIN 是您的 Windows 網域。
- USERNAME 是您的使用者名稱。
如要讓群組成員異動生效,請登出後再重新登入。如果您使用的是虛擬機器,可能需要重新啟動虛擬機器,成員異動才會生效。
如要確認 Docker 正在運作,請執行下列 Docker 指令,可傳回目前的時間和日期:
docker run --rm busybox date
--rm
標記會在退出時刪除容器執行個體。
建立 Docker 存放區
您必須建立 Docker 存放區,以便儲存本快速入門教學所用的範例映像檔。
主控台
在 Google Cloud 控制台中開啟「Repositories」頁面。
依序點選「新增」「建立存放區」。
將
quickstart-docker-repo
指定為存放區名稱。選擇「Docker」做為格式,並選擇「標準」做為模式。
在「位置類型」下方,選取「區域」,然後選擇位置
us-west1
。按一下 [建立]。
存放區會新增至存放區清單。
gcloud
執行下列指令,在
us-west1
位置中新建名為quickstart-docker-repo
的 Docker 存放區,並將說明設為「docker repository」(Docker 存放區)。gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \ --location=us-west1 --description="Docker repository" \ --project=PROJECT
其中 PROJECT 是您的 Google Cloud 專案 ID。
執行下列指令,確認存放區已建立。
gcloud artifacts repositories list \ --project=PROJECT
如要進一步瞭解 Artifact Registry 指令,請執行 gcloud artifacts
指令。
設定驗證機制
在推送或提取映像檔前,請先設定 Docker,透過 Google Cloud CLI 驗證傳送至 Artifact Registry 的要求。
如要為 us-west1
區域中的 Docker 存放區設定驗證機制,請執行下列指令:
gcloud auth configure-docker us-west1-docker.pkg.dev
這個指令會更新 Docker 設定。您現在可以在專案中連結 Artifact Registry,以便推送及提取映像檔。 Google Cloud
如要進一步瞭解其他驗證方法,請參閱「驗證方法」。
取得要推送的映像檔
在本快速入門導覽課程中,您將推送名為 hello-app
的範例圖片。
執行下列指令,提取 1.0 版映像檔。
docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Artifact Registry 中的圖片路徑包含多個部分,針對此範例圖片:
us-docker.pkg.dev
是儲存在 Artifact Registry Docker 存放區中的容器映像檔主機名稱,其中包含存放區的位置 (us
)。google-samples
是專案 ID。containers
是存放區 ID。/gke/hello-app
是存放區containers
中映像檔的路徑。
將圖片新增至存放區
將 Docker 映像檔推送至 Artifact Registry 之前,您必須先使用存放區名稱標記映像檔。
使用註冊資料庫名稱為映像檔加上標記
使用存放區名稱標記 Docker 映像檔可設定 docker push
指令,將映像檔推送至特定位置。在本快速入門導覽課程中,主機位置為 us-west1-docker.pkg.dev
。
執行下列指令,將圖片標記為 quickstart-image:tag1
:
docker tag us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 \ us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
其中:
us-west1
是存放區位置。us-west1-docker.pkg.dev
是您建立的 Docker 存放區的主機名稱。- PROJECT 是您的 Google Cloud 專案 ID。如果您的專案 ID 包含冒號 (
:
),請參閱網域範圍專案。 quickstart-docker-repo
是您建立的存放區 ID。quickstart-image
是您要用於存放區的映像檔名稱。映像檔名稱可以與本機映像檔名稱不同。在本快速入門課程中,您將直接在存放區 IDquickstart-docker-repo
底下儲存圖片。tag1
是您要新增至 Docker 映像檔的標記。如果您沒有指定標記,Docker 會套用預設標記latest
。
您現在可以將映像檔推送至所建立的存放區。
將映像檔推送至 Artifact Registry
設定驗證方法並標記本機映像檔後,您就可以將映像檔推送至自己建立的存放區。
如要推送 Docker 映像檔,請執行下列指令:
docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
:
),請參閱「網域範圍專案」一節。
從 Artifact Registry 提取映像檔
如要將映像檔從 Artifact Registry 提取到本機電腦,請執行下列指令:
docker pull us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
:
),請參閱「網域範圍專案」一節。
latest: Pulling from [PROJECT-ID]/quickstart-image:tag1 Digest: sha256:70c42... Status: Image is up to date for us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取您在本頁所用資源的費用,請按照下列步驟操作。
移除存放區之前,請先確認要保留的所有映像檔都能在其他位置存取。
如要刪除存放區,請按照下列步驟操作:
主控台
在 Google Cloud 控制台中開啟「Repositories」頁面。
在存放區清單中,選取
quickstart-docker-repo
存放區。點選「刪除」。
gcloud
如要刪除 quickstart-docker-repo
存放區,請執行下列指令:
gcloud artifacts repositories delete quickstart-docker-repo --location=us-west1
後續步驟
- 進一步瞭解如何使用容器映像檔。
- 進一步瞭解 Docker。
- 參閱DevOps相關資源,並探索開發運作研究與評估 (DORA) 研究計畫。