Amazon Elastic Container Registry 常見問答集

一般問題

Amazon ECR 是全受管容器登錄檔,可讓開發人員輕鬆共用和部署容器映像與成品。Amazon ECR 已與 Amazon Elastic Container Service (Amazon ECS)Amazon Elastic Kubernetes Service (Amazon EKS)AWS Lambda 整合,以簡化從開發到生產的工作流程。Amazon ECR 讓您不必操作自己的容器儲存庫,也不必擔心如何擴展基礎設施。Amazon ECR 會將您的映像託管在高可用性及高可擴展性的架構中,讓您可靠地為應用程式部署容器。與 AWS Identity and Access Management (IAM) 整合可為每個儲存庫提供資源級控制,讓您可在整個組織內或與世界上任何人共享映像。

Amazon ECR 讓您不必操作和擴展用於支援容器登錄檔所需的基礎設施。Amazon ECR 使用 Amazon Simple Storage Service (S3) 進行儲存,讓您的容器映像高度可用且可存取,以便可靠地為應用程式部署新的容器。Amazon ECR 會透過 HTTPS 傳輸您的容器映像,並自動在靜態時加密映像。您可以設定政策以管理每個儲存庫的許可,並限制對 IAM 使用者、角色或其他 AWS 帳戶的存取。Amazon ECR 與 Amazon ECS、Amazon EKS、AWS Fargate、AWS Lambda 和 Docker CLI 整合,讓您能夠簡化從開發到生產的工作流程。您可以使用 Docker CLI 輕鬆地從開發機器將容器映像推送到 Amazon ECR,然後 Amazon 容器協調器或運算可以直接提取這些映像以進行生產部署。

Amazon ECR 是區域服務,旨在提供您部署映像的彈性。您可以將映像推送/提取至可獲得最佳 Docker 叢集執行效能的相同 AWS 區域。您也可以在執行 Docker 的任何地方存取 Amazon ECR,如桌面和內部部署環境。在區域間提取映像或將映像提出網際網路,會產生額外的延遲和數據傳輸費用。

是。Amazon ECR 具有高可用性容器登錄檔和網站,可讓您輕鬆共享或搜尋公有容器軟體。擁有或沒有 AWS 帳戶的任何人都可使用 Amazon ECR 公共映像庫來搜尋和下載常用的容器映像,例如作業系統、AWS 發佈的映像以及 Kubernetes 的 Helm Chart 等檔案。

私有儲存庫不提供內容搜尋功能,並且在允許提取映像之前,需要使用 AWS 帳戶登入資料進行 Amazon IAM 身份驗證。公有儲存庫具有描述性內容,並且允許任何人隨時隨地提取映像,而無需 AWS 帳戶或使用 IAM 登入資料。在 Amazon ECR 公有庫中也可提供公有儲存庫映像。
 

您可以在 Amazon ECR 上使用 AWS CloudTrail,以提供所有 API 動作的歷史記錄,如提取映像的人員及在映像間移動標籤的時間。管理員也可以找出哪些 EC2 執行個體提取了哪些映像。

使用 Amazon ECR

開始使用 Amazon ECR 的最佳方法是使用 Docker CLI 來推送和提取您的第一個映像。如需詳細資訊,請參閱入門頁面。

是。您可以將 AWS PrivateLink 端點設定為無須周遊公有網際網路,即可讓執行個體從您的私有儲存庫提取映像。

Amazon ECR 提供命令列界面和 API,以建立、監控和刪除儲存庫及設定儲存庫許可。您可以在 Amazon ECR 主控台執行相同的動作,從 Amazon ECR 主控台的 "Repositories" (儲存庫) 部分可以存取該主控台。Amazon ECR 也與 Docker CLI 整合,允許您在開發機器上推送、提取和標記映像。

登入您的 AWS 帳戶並推送至您建立的公有儲存庫,即可將映像發佈至 Amazon ECR 公有庫。對每個帳戶指派唯一的別名以在映像 URL 中使用,該別名可識別您發佈的所有公有映像。

是。您可以請求自訂別名,例如您的組織或專案名稱,除非是保留別名。可以保留用於識別 AWS 服務的名稱。還可以保留用於識別 AWS Marketplace 賣家的名稱。除非您的別名請求違反 AWS 可接受使用政策或其他 AWS 政策,否則我們將在幾天內審查並核准您的自訂別名請求。

您可以使用熟悉的 ‘docker pull’ 命令提取映像的 URL。您可以使用發佈者別名、映像名稱或使用 Amazon ECR 公有庫的映像描述來尋找映像,從而輕鬆地搜尋此 URL。映像 URL 的格式為 public.ecr.aws/<alias>/<image>:<tag>,例如 public.ecr.aws/eks/aws-alb-ingress-controller:v1.1.5

是。Amazon ECR 旨在為您提供映像存放位置及映像部署方式的彈性。您可以建立用於建置映像的部署管道,將其推送至一個區域中的 Amazon ECR,然後 Amazon ECR 可自動將其複製到其他區域和帳戶,以部署至多區域叢集。

是。您可以在執行 Docker 的任何地方存取 Amazon ECR,如桌面和現場部署環境。

是。Amazon EKS、Amazon SageMaker 和 AWS Lambda 等服務將其官方的公用容器映像和成品發佈至 Amazon ECR。 

是。Amazon ECR 已與 Amazon ECS 整合,讓您可輕鬆存放、執行及管理在 Amazon ECS 執行的應用程式容器映像。您只需在任務定義中指定 Amazon ECR 儲存庫,Amazon ECS 就會替應用程式擷取適合的映像。

Amazon ECR 目前支援 Docker Engine 1.7.0 及更新版本。

Amazon ECR 支援 Docker Registry V2 API 規格。

否。不過,Amazon ECR 與多個熱門的 CI/CD 解決方案整合,可提供此功能。如需詳細資訊,請參閱 Amazon ECR 合作夥伴頁面

是。Amazon ECR 已經與 AWS Identity and Access Management (IAM) 整合,支援將存取權委派給 AWS 管理主控台或 AWS API 的聯合身分

Amazon ECR 支援 Docker Image Manifest V2, Schema 2 格式。為了維持與 Schema 1 映像的回溯相容性,Amazon ECR 將持續接受以 Schema 1 格式上傳的映像。此外,使用舊版 Docker Engine (1.9 和更舊版本) 提取映像時,Amazon ECR 可以將 Schema 2 映像轉譯為 Schema 1 映像。

是。Amazon ECR 與 Open Container Initiative (OCI) 映像規格相容,可讓您推送和提取 OCI 映像和成品。提取映像時,Amazon ECR 還能在 Docker Image Manifest V2, Schema 2 映像和 OCI 映像之間進行轉譯。

安全性

Amazon ECR 使用 Amazon S3 伺服器端加密或 AWS KMS 加密自動加密靜態映像,並透過 HTTPS 傳輸容器映像。您可以使用 AWS Identity and Access Management (IAM) 使用者與角色來設定政策,以管理許可和控制映像的存取,而不必在 EC2 執行個體上直接管理登入資料。

您可以使用 IAM 以資源為基礎的政策,控制和監控可以存取容器映像的人員和項目 (如 EC2 執行個體),以及存取的方法、時間和位置。若要開始使用,請使用 AWS 管理主控台為儲存庫建立以資源為基礎的政策。或者,可以使用範本政策,並透過 Amazon ECR CLI 將其連接至儲存庫。

是。 這個範例說明如何針對跨帳戶映像共用建立和設定政策。

您可以啟用 Amazon ECR 來自動掃描您的容器映像是否存在廣泛的作業系統漏洞。您還可以使用 API 命令掃描映像,當掃描完成時,Amazon ECR 將透過 API 和主控台通知您。若要進行增強的映像掃描,可以開啟 Amazon Inspector