- Published on
將 ECR Image 推到新區域(Region)的完整流程
在 AWS 中,如果需要將某個 ECR(Elastic Container Registry)中的 Docker image 推到另一個區域,主要流程如下:拉取 → 打 tag → 登入 → 推送。
以下以實際範例說明。
前提條件
- 已安裝 AWS CLI
- 已安裝 Docker
- 已有 AWS 帳號並設定好
aws configure - 目標 ECR repository 在新區域已存在(如尚未建立,可先建立)
1️⃣ 從舊區域拉取 image
假設舊區域為 ap-northeast-1,image 名稱為 atrix/exchange-api:3.0.145:
aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com
docker pull 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/atrix/exchange-api:3.0.145

2️⃣ 給 image 打上新區域 tag
假設新區域為 ap-east-2,新的 repository 名稱仍為 atrix/exchange-api:
docker tag 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/atrix/exchange-api:3.0.145 123456789012.dkr.ecr.ap-east-2.amazonaws.com/atrix/exchange-api:3.0.145
3️⃣ 登入新區域 ECR
aws ecr get-login-password --region ap-east-2 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-east-2.amazonaws.com
登入成功會顯示:
Login Succeeded
4️⃣ 推送到新區域
docker push 123456789012.dkr.ecr.ap-east-2.amazonaws.com/atrix/exchange-api:3.0.145
推送完成後,image 就會出現在新區域的 ECR repository 中。
⚠️ 注意事項
- 新區域的 repository 必須先建立
aws ecr create-repository --repository-name atrix/exchange-api --region ap-east-2
IAM 權限要求
使用者必須擁有以下 ECR 權限:
ecr:GetAuthorizationToken ecr:BatchCheckLayerAvailability ecr:GetDownloadUrlForLayer ecr:BatchGetImage ecr:PutImage ecr:InitiateLayerUpload ecr:UploadLayerPart ecr:CompleteLayerUpload
Token 過期問題
ECR 登入 token 只有效 12 小時,若拉取或推送失敗請重新登入:
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <aws_account>.dkr.ecr.<region>.amazonaws.com