前言
過去我對自架伺服器特別有興趣,多數經驗集中在地端環境,從自架 Windows Server 和 Linux Server,到使用 Hyper-V 和 vSphere,並從 Windows Docker Container 到 Linux Docker Container 等技術都有涉略,隨著容器技術的發展和雲端便利性的提升,越來越多企業採用雲端伺服器,激起了我進一步探索雲端部署可能性的興趣。
地端 vs 雲端容器部署流程
-
地端佈署流程
Docker Build Image → Push Image to Private Registry → Docker Run -
雲端佈署流程
Docker Build Image → Push Image to Google Artifact Registry → Google Cloud Run
環境說明
- 作業系統:Windows 11,並在本地端安裝好 Docker Desktop
- 可容器化的專案,並事先建立好 Dockerfile
- GCP 專案 ID:gcr-my-project01 取得專案ID連結
- Google Artifact Registry 主機位置:asia-east1-docker.pkg.dev ( 從Artifact Registry > 選勾 Registry > 設定操作說明 )
安裝 Google Cloud CLI
- 下載並安裝 Google Cloud CLI
(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")
& $env:Temp\GoogleCloudSDKInstaller.exe
- Windows 安裝過程,會跳出安裝視窮,依據提示,下一步到底即可。
- 安裝完成後會詢問是否要登入及選擇那個Google專案( 當然你也可以打指令登入, ex:
gcloud auth login)
gcloud auth login
gcloud projects list
gcloud config set project PROJECT_ID
建立 Artifact Registry
進入 Artifact Registry,並取得 Registry 的 URL。
-
建立存放區

-
依照預設設定微調 > 建立

-
選取建立好的 Registry > Setup instructions > 複製設定指令
注意: Windows 使用者請移除 \,使指令變為單行。 -
在本地端設定 Google Artifact Registry:
gcloud auth configure-docker asia-east1-docker.pkg.dev

建置與驗證 Docker 映像檔
- 首先,用指令切換到可容器化的專案,並事先建立好 Dockerfile
- 使用以下指令建置 Docker 映像檔:
docker build -t asia-east1-docker.pkg.dev/gcr-my-project01/my-registry/ec:v2 .
- 運行映像檔進行本地端測試:
docker run -d -p 8888:80 asia-east1-docker.pkg.dev/gcr-my-project01/my-registry/ec:v2
- 訪問 localhost:8888 測試容器服務,有沒有異常

推送映像到 Artifact Registry
docker push asia-east1-docker.pkg.dev/gcr-my-project01/my-registry/ec:v2
此時就能在你的registry 看到你剛推送的docker image

Google Cloud Run 部署
Google Cloud Run 支援透過網頁UI手動部署及用指令腳本部署
從網頁手動部署
-
在 Cloud Run 中選擇「+Deploy Container」

-
依照畫面指示完成設定

-
進入 Cloud Run,設定 Container(s)、Volumes、Networking、Security 等參數,並設定 Container port 為 80。

或也可以使用指令腳本部署至 Cloud Run
gcloud run deploy my-service --image=asia-east1-docker.pkg.dev/gcr-my-project01/my-registry/ec:v2 --platform managed --allow-unauthenticated --region=asia-east1 --port=80
此時,訪問這Url,檢查你的容器應用,並可以從Google Cloud Run 看到這個容器服務的狀態。
心得
使用 GCP CLI 之後,我發現它的操作方式其實和地端的指令相似,讓上手難度減少了不少,對於中小企業而言,這樣的雲端工具特別具有吸引力,不僅免去了購買實體伺服器的成本,也不需要煩惱軟體更新的問題,像是公司規模較小,日常維運的工作量並不足以需要一位專職的網管人員,而 GCP 的彈性方案讓我們可以依需求增減資源,更靈活地運用 IT 成本。
補充 - 透過重新部署服務來更新映像檔
方法 1: 使用 Google Cloud Console 網站更新映像檔
- 前往 Google Cloud Console.
- 導航到 Cloud Run.
- 點擊需要更新的服務。
- 點擊 編輯並部署新版本 或 Deploy New Revision。
- 在 容器映像 URL 欄位中輸入新的容器映像(例如:
gcr.io/<project-id>/<image-name>:<tag>)。 - 配置其他設置(如需要),然後點擊 部署 或 Deploy。
方法 2: 使用 gcloud CLI 更新映像檔
如果使用命令行工具,可以使用 gcloud run deploy 命令來更新映像檔:
gcloud run deploy <SERVICE_NAME> \
--image gcr.io/<PROJECT_ID>/<ARTIFACT_REGISTRY_URL>/<IMAGE_NAME>:<TAG> \
--region <REGION>






















留言