如何創建並推送 Docker 映像檔至 AWS ECR
今天我們來聊聊如何將 Docker 映像檔推送到 AWS 的 Elastic Container Registry (ECR)
前期準備
在開始之前,我們需要確保已完成以下準備:
- 安裝 AWS CLI:確保你的電腦上已安裝並配置好 AWS CLI。
- 安裝 Docker:確保 Docker 已安裝並正在運行。
- 創建 ECR 儲存庫:你需要在 AWS 賬戶中創建一個 ECR 儲存庫。
發生的問題
在創建 ECR 儲存庫時,你可能會遇到以下錯誤訊息:
not authorized to perform: ecr:CreateRepository
這表示當前的 AWS Identity and Access Management (IAM) 用戶或角色缺乏必要的權限。
如何解決權限問題
要解決這類問題,你需要更新 IAM 用戶或角色的權限。下面是詳細步驟:
更新 IAM 權限政策:
我們需要為 IAM 用戶或角色添加一個政策,允許他們創建 ECR 儲存庫。你可以創建如下的新政策:
json
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:CreateRepository", "ecr:DescribeRepositories", "ecr:ListImages", "ecr:DeleteRepository", "ecr:DeleteRepositoryPolicy", "ecr:DescribeImages", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:PutImage" ], "Resource": "*" } ] }
附加政策:
- 進入 AWS IAM 主控台。
- 找到你使用的 IAM 用戶或角色。
- 附加你創建的政策,或者選擇 AWS 提供的管理政策,比如
AmazonEC2ContainerRegistryFullAccess
,它可以提供更廣泛的權限。
驗證和測試
政策設置完成後,重新嘗試創建 ECR 儲存庫:
bash
aws ecr create-repository --repository-name your-repo-name
推送 Docker 映像檔到 ECR
接下來,讓我們把 Docker 映像檔準備好並推送到 ECR。
Docker 連線到 ECR:
使用 AWS CLI 獲取登入密鑰並執行 Docker 登入:
bash
aws ecr get-login-password --region 你的區域 | docker login --username AWS --password-stdin 你的帳號ID.dkr.ecr.你的區域.amazonaws.com
建構 Docker 映像檔:
bash
docker build -t 映像檔名稱:標籤 .
標註映像檔:
bash
docker tag 映像檔名稱:標籤 你的帳號ID.dkr.ecr.你的區域.amazonaws.com/你的儲存庫名稱:標籤
推送映像檔到 ECR:
bash
docker push 你的帳號ID.dkr.ecr.你的區域.amazonaws.com/你的儲存庫名稱:標籤
小結
在解決 IAM 權限問題並成功地創建 ECR 儲存庫後,你應該就可以順利地將 Docker 映像檔推送到 AWS ECR 了。
留言
發佈留言