Phản hồi lỗi kéo docker từ daemon

Trong một số trường hợp, chạy lệnh Docker với Amazon ECR có thể dẫn đến thông báo lỗi. Một số thông báo lỗi phổ biến và giải pháp tiềm năng được giải thích bên dưới

Bạn có thể gặp lỗi Filesystem verification failed khi sử dụng lệnh docker pull để lấy hình ảnh từ kho lưu trữ Amazon ECR bằng Docker 1. 9 trở lên. Bạn có thể gặp lỗi 404: Image not found khi đang sử dụng các phiên bản Docker trước 1. 9

Một số lý do có thể và giải thích của họ được đưa ra dưới đây

Đĩa cục bộ đã đầy

Nếu đĩa cục bộ mà bạn đang chạy docker pull trên đó đã đầy, thì hàm băm SHA-1 được tính trên tệp cục bộ có thể khác với giá trị được tính bởi Amazon ECR. Kiểm tra xem đĩa cục bộ của bạn có đủ dung lượng trống còn lại để lưu trữ hình ảnh Docker mà bạn đang kéo không. Bạn cũng có thể xóa hình ảnh cũ để nhường chỗ cho hình ảnh mới. Sử dụng lệnh hình ảnh docker để xem danh sách tất cả các hình ảnh Docker được tải xuống cục bộ, cùng với kích thước của chúng

Khách hàng không thể kết nối với kho lưu trữ từ xa do lỗi mạng

Lệnh gọi tới kho lưu trữ Amazon ECR yêu cầu phải có kết nối Internet đang hoạt động. Xác minh cài đặt mạng của bạn và xác minh rằng các công cụ và ứng dụng khác có thể truy cập tài nguyên trên internet. Nếu bạn đang chạy docker pull trên một phiên bản Amazon EC2 trong một mạng con riêng tư, hãy xác minh rằng mạng con đó có một tuyến đến internet. Sử dụng máy chủ dịch địa chỉ mạng (NAT) hoặc cổng NAT được quản lý

Hiện tại, các lệnh gọi tới kho lưu trữ Amazon ECR cũng yêu cầu quyền truy cập mạng thông qua tường lửa công ty của bạn tới Amazon Simple Storage Service (Amazon S3). Nếu tổ chức của bạn sử dụng phần mềm tường lửa hoặc thiết bị NAT cho phép điểm cuối dịch vụ, hãy đảm bảo rằng điểm cuối dịch vụ Amazon S3 cho Khu vực hiện tại của bạn được cho phép

Nếu bạn đang sử dụng Docker phía sau proxy HTTP, bạn có thể định cấu hình Docker bằng cài đặt proxy thích hợp. Để biết thêm thông tin, xem trong tài liệu Docker

Bạn có thể gặp lỗi image image-name not found khi kéo hình ảnh bằng lệnh docker pull. Nếu bạn kiểm tra nhật ký Docker, bạn có thể thấy lỗi như sau

filesystem layer verification failed for digest sha256:2b96f...

Lỗi này cho biết rằng một hoặc nhiều lớp cho hình ảnh của bạn không tải xuống được. Một số lý do có thể và giải thích của họ được đưa ra dưới đây

Bạn đang sử dụng phiên bản Docker cũ hơn

Lỗi này có thể xảy ra trong một tỷ lệ nhỏ trường hợp khi sử dụng phiên bản Docker nhỏ hơn 1. 10. Nâng cấp máy khách Docker của bạn lên 1. 10 hoặc cao hơn

Máy khách của bạn đã gặp phải lỗi mạng hoặc đĩa

Ổ đĩa đầy hoặc sự cố mạng có thể ngăn không cho một hoặc nhiều lớp tải xuống, như đã thảo luận trước đó về thông báo Filesystem verification failed. Thực hiện theo các đề xuất ở trên để đảm bảo rằng hệ thống tệp của bạn không đầy và bạn đã bật quyền truy cập vào Amazon S3 từ bên trong mạng của mình

Lỗi khi kéo bằng quy tắc kéo qua bộ đệm

Khi kéo hình ảnh ngược dòng bằng quy tắc kéo qua bộ đệm, sau đây là các lỗi phổ biến nhất mà bạn có thể gặp phải

Kho lưu trữ không tồn tại

Lỗi cho biết kho lưu trữ không tồn tại thường xảy ra nhất do kho lưu trữ không tồn tại trong sổ đăng ký riêng Amazon ECR của bạn hoặc quyền ecr:CreateRepository không được cấp cho chủ IAM kéo hình ảnh ngược dòng. Để khắc phục lỗi này, bạn nên xác minh rằng URI kho lưu trữ trong lệnh kéo của bạn là chính xác, các quyền IAM cần thiết được cấp cho IAM chính kéo hình ảnh ngược dòng hoặc kho lưu trữ cho hình ảnh ngược dòng được đẩy vào được tạo trong . Để biết thêm thông tin về các quyền IAM cần thiết, hãy xem

Sau đây là một ví dụ về lỗi này

Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
Không tìm thấy hình ảnh được yêu cầu

Lỗi cho biết không thể tìm thấy hình ảnh thường xảy ra nhất do hình ảnh không tồn tại trong sổ đăng ký ngược dòng hoặc quyền ecr:BatchImportUpstreamImage không được cấp cho chủ IAM kéo hình ảnh ngược dòng nhưng kho lưu trữ đã được tạo trong Amazon ECR của bạn . Để khắc phục lỗi này, bạn nên xác minh hình ảnh ngược dòng và tên thẻ hình ảnh là chính xác và nó tồn tại và các quyền IAM cần thiết được cấp cho IAM chính kéo hình ảnh ngược dòng. Để biết thêm thông tin về các quyền IAM cần thiết, hãy xem

Sau đây là một ví dụ về lỗi này

Error response from daemon: manifest for 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux:latest not found: manifest unknown: Requested image not found

Lỗi HTTP 403 hoặc lỗi "không có thông tin xác thực cơ bản" khi đẩy lên kho lưu trữ

Đôi khi bạn có thể nhận được lỗi

Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
0 hoặc thông báo lỗi
Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
1 từ lệnh docker push hoặc docker pull, ngay cả khi bạn đã xác thực thành công với Docker bằng lệnh aws ecr get-login-password. Sau đây là một số nguyên nhân đã biết của vấn đề này

Bạn đã xác thực cho một khu vực khác

Yêu cầu xác thực được liên kết với các khu vực cụ thể và không thể được sử dụng giữa các khu vực. Ví dụ: nếu bạn nhận được mã thông báo ủy quyền từ Miền Tây Hoa Kỳ (Oregon), bạn không thể sử dụng nó để xác thực với các kho lưu trữ của mình ở Miền Đông Hoa Kỳ (N. Virginia). Để giải quyết vấn đề, hãy đảm bảo rằng bạn đã truy xuất mã thông báo xác thực từ cùng Khu vực mà kho lưu trữ của bạn tồn tại. Để biết thêm thông tin, hãy xem Xác thực sổ đăng ký riêng tư

Bạn đã xác thực để đẩy tới kho lưu trữ mà bạn không có quyền đối với

Bạn không có quyền cần thiết để đẩy vào kho lưu trữ. Để biết thêm thông tin, hãy xem Chính sách kho lưu trữ riêng

Mã thông báo của bạn đã hết hạn

Thời gian hết hạn mã thông báo ủy quyền mặc định đối với mã thông báo thu được bằng cách sử dụng hoạt động

Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
2 là 12 giờ

Lỗi trong trình quản lý thông tin đăng nhập
Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
3

Một số phiên bản Docker dành cho Windows sử dụng trình quản lý thông tin đăng nhập có tên là

Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
3, không xử lý đúng cách lệnh đăng nhập Docker do aws ecr get-login-password tạo ra (để biết thêm thông tin, hãy xem https. //github. com/docker/docker/issues/22910). Bạn có thể chạy lệnh đăng nhập Docker được xuất ra, nhưng khi bạn cố gắng đẩy hoặc kéo hình ảnh, các lệnh đó không thành công. Bạn có thể khắc phục lỗi này bằng cách xóa lược đồ
Error response from daemon: repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/ecr-public/amazonlinux/amazonlinux not found: name unknown: The repository with name 'ecr-public/amazonlinux/amazonlinux' does not exist in the registry with id '111122223333'
5 khỏi đối số sổ đăng ký trong lệnh đăng nhập Docker được xuất ra từ aws ecr get-login-password. Một lệnh đăng nhập Docker ví dụ không có lược đồ HTTPS được hiển thị bên dưới