本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以使用 AWS Management Console、 AWS CLI或 AWS SDKs來建立和管理私有儲存庫。您可以使用這些方法來在映像上執行部分動作,例如列清單或刪除。這些用戶端使用標準 AWS 身分驗證方法。即使您可以使用 Amazon ECRAPI來推送和提取影像,您更有可能使用 Docker CLI或語言特定的 Docker 程式庫。
Docker CLI不支援原生IAM身分驗證方法。必須採取其他步驟,Amazon ECR才能驗證和授權 Docker 推送和提取請求。
下列各節詳述的登錄檔驗證方法可用。
使用 Amazon ECR登入資料協助程式
Amazon ECR提供 Docker 登入資料協助程式,可讓您在將影像推送和提取至 Amazon 時,更輕鬆地存放和使用 Docker 登入資料ECR。如需安裝和組態步驟,請參閱 Amazon ECR Docker Credential Helper
注意
Amazon ECR Docker 憑證協助程式目前不支援多重要素驗證 (MFA)。
使用授權字符
授權字符的許可權範圍與用來擷取身分驗證字符之 IAM 委託人的許可範圍相符。身分驗證字符用於存取您的IAM委託人有權存取且有效期為 12 小時的任何 Amazon ECR登錄檔。若要取得授權字符,您必須使用 GetAuthorizationTokenAPI操作來擷取包含使用者名稱AWS
和編碼密碼的 base64 編碼授權字符。 AWS CLI get-login-password
命令透過擷取和解碼授權字符來簡化此過程,然後您可以匯入docker login命令進行驗證。
使用 get-login 驗證 Docker 到 Amazon ECR私有登錄檔
若要使用 驗證 Docker 到 Amazon ECR登錄檔 get-login-password,請執行 aws ecr get-login-password命令。將身分驗證字符傳遞至 docker login命令時,請使用使用者名稱
AWS
的值,並指定URI您要進行身分驗證的 Amazon ECR登錄檔。如果是向多個登錄進行驗證,您必須針對每個登錄重複此命令。重要
若您收到錯誤,請安裝或升級至最新版本的 AWS CLI。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的安裝 AWS Command Line Interface。
-
get-login-password (AWS CLI)
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com -
Get-ECRLoginCommand (AWS Tools for Windows PowerShell)
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com
-
使用HTTPAPI身分驗證
Amazon ECR支援 Docker 登錄檔 HTTP API-H
選項新增HTTP授權標頭,curl並傳遞 get-authorization-token AWS CLI 命令提供的授權字符。
使用 Amazon 驗證 ECR HTTP API
-
使用 擷取授權字符, AWS CLI 並將其設定為環境變數。
TOKEN=$(aws ecr get-authorization-token --output text --query 'authorizationData[].authorizationToken')
-
若要驗證 API,請將
$TOKEN
變數傳遞至-H
的選項curl。例如,下列命令會列出 Amazon ECR儲存庫中的映像標籤。如需詳細資訊,請參閱 Docker Registry HTTPAPI參考文件。 curl -i -H "Authorization: Basic $TOKEN" https://
aws_account_id
.dkr.ecr.region
.amazonaws.com/v2/amazonlinux
/tags/list其輸出如下:
HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Thu, 04 Jan 2018 16:06:59 GMT Docker-Distribution-Api-Version: registry/2.0 Content-Length: 50 Connection: keep-alive {"name":"amazonlinux","tags":["2017.09","latest"]}