Kết nối thành công tới một registry ECR riêng tư chưa hoàn tất việc kéo image. ECR cung cấp manifest, còn Amazon S3 lưu các lớp của image. Vì vậy, một cấu hình bỏ qua chỉ bao phủ registry có thể khiến việc tải lớp đi theo tuyến khác.

Để truy cập riêng tư qua các endpoint VPC, hãy kiểm tra cả hai đường:

  • Endpoint giao diện ECR và cấu hình DNS riêng tư của nó.
  • Endpoint S3, các bảng định tuyến liên kết và chính sách cho phép truy cập bucket chứa lớp của ECR.

Sau đó đặt các tên bỏ qua liên quan trên tiến trình thực hiện việc kéo. Với Docker Engine gốc có cấu hình proxy trong daemon.json, một cấu hình minh họa cho us-east-2 là:

{
  "proxies": {
    "http-proxy": "http://proxy.example:8080",
    "https-proxy": "http://proxy.example:8080",
    "no-proxy": "123456789012.dkr.ecr.us-east-2.amazonaws.com,prod-us-east-2-starport-layer-bucket.s3.us-east-2.amazonaws.com"
  }
}

Hợp nhất các mục dự định với các thiết lập khác của daemon và danh sách bỏ qua hiện có. Nếu các lượt tải khác từ registry công khai có thể dùng một trung gian công khai, danh sách proxy HTTP cung cấp ứng viên cho URL proxy không cần tài khoản; hãy giữ các mục bỏ qua ECR và S3 riêng tư. Thay tài khoản, vùng và hostname tải lớp bằng tên mà việc kéo thực sự dùng. Các dạng đặt tên S3 và cấu hình endpoint có thể khác nhau; ví dụ này không phải danh sách endpoint AWS đầy đủ. Việc áp dụng cấu hình daemon đòi hỏi khởi động lại daemon như dự định. Docker Desktop dùng thiết lập proxy riêng của nó.

Bỏ qua chọn một tuyến trực tiếp. Nó không thể tạo endpoint S3 còn thiếu, gắn bảng định tuyến, cấp quyền truy cập bucket hay sửa DNS riêng tư. Hãy xác nhận các phụ thuộc đó trước khi mở rộng việc bỏ qua sang các miền AWS rộng.

Thiết lập proxy cho container của Docker client không cấu hình việc tải image của daemon. Tương tự, lệnh AWS CLI lấy thông tin đăng nhập ECR có cấu hình proxy riêng; hãy thêm đích API của nó nếu yêu cầu riêng đó cũng cần truy cập riêng tư.

Bài viết liên quan