簡介 GCP Artifact Registry,並提供範例,逐步介紹將 Docker Image Push 至 GCP Artifact Registry。
Artifact Registry 改進原有的 Container Registry,可以同時存放 container images 與 non-container artifacts,如 Maven、npm、Python、Apt、Yum、Kubeflow Pipelines 等套件。
文章範例執行於 Windows 11 環境,使用 PowerShell 7.3.1。
GCP Push and pull images
前置作業
- 建立 GCP Project (本範例為 artifact-registry-dyson)
- 本機需要安裝 Docker
Google Cloud CLI Installer
若您尚未安裝 gcloud CLI,可參考下列網頁進行安裝: Install the gcloud CLI。
安裝後,會詢問是否要登入與選擇預設的專案名稱。完成後, 便可以在 PowerShell 輸入 gcloud 指令了。
Create Repository
選擇您想要加入的 GCP Project,新增 Artifact Registry,相關設定選項如下:
- Name: quickstart-docker-repo (Repository 名稱,您可自行設定)
- Format: Docker
- Location Type: Region
- Region: us-central1
Region 也可以選擇 asia-east1 (Taiwan),機房位於彰濱工業區。
設定授權
執行下列指令,將修改 docker configuration 內容:
gcloud auth configure-docker \
us-central1-docker.pkg.dev
若 Region 選擇 asia-east1,那麼上列指令,則改為:
gcloud auth configure-docker \
asia-east1-docker.pkg.dev
檢查 docker configuration,會發現新增了 credHelpers 區塊。執行下列指令:
cat $env:UserProfile\.docker\config.json
顯示結果如下:
{
"credsStore": "desktop",
"credHelpers": {
"us-central1-docker.pkg.dev": "gcloud"
}
}
Pull Docker Image
接下來,您可以自行開發或由 Docker Hub 取得 Docker Image:
docker pull nginx
Tag Docker Image
在 push docker image 之前,先將剛才新增的 container registry,以 respository name 透過 tag 加入 docker image 中。
Tag 的規則是 <hostname>/<project-name>/<repository-name>/<image-name>:<tag>
docker tag nginx \
us-central1-docker.pkg.dev \
/artifact-registry-dyson \
/quickstart-docker-repo \
/nginx-image:tag1
- artifact-registry-dyson: GCP Project ID,這是您可以自行建立的專案名稱
- us-central1: 為 repository host 所在位置,
- docker.pkg.dev: Docker repositories 的 hostname
- nginx-image: Docker image name
Push Docker Image
最後,並可以將 Docker push 至私有的 registry
docker push us-central1-docker.pkg.dev \
/artifact-registry-dyson \
/quickstart-docker-repo \
/nginx-image:tag1```
***
參考資料:
- [Artifact Registry: the next generation of Container Registry](https://cloud.google.com/blog/products/application-development/understanding-artifact-registry-vs-container-registry)
***
沒有留言:
張貼留言