Ошибка извлечения Docker AWS ECR "не авторизован: требуется аутентификация"

Я вошел в репозиторий AWS ECR и запустил команду pull, но выдает эту ошибку

# $(aws ecr get-login --no-include-email)
Login Succeeded

# docker pull 432354543235.dkr.ecr.us-east-1.amazonaws.com/abc-example:1.1.1                                        
Pulling repository 432354543235.dkr.ecr.us-east-1.amazonaws.com/abc-example:1.1.1
unauthorized: authentication required

1 ответ

Amazon хорошо задокументировала, как использовать AWS CLI, чтобы позволить докеру аутентифицироваться в реестре Amazon ECR.

Однако, get-loginтеперь устарел. Вам нужно будет использоватьget-login-password вместо.

В своей документации они отмечают, что вы можете передать токен аутентификации команде входа в докер. Вам также нужно будет указать URI реестра Amazon ECR, в котором вы хотите пройти аутентификацию.

Например

$ aws ecr get-login-password --region us-east-1 \
  | docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.us-east-1.amazonaws.com

Затем я могу вытащить изображение в соответствии с registry/repository[:tag].

Реестр - это комбинация идентификатора вашей учетной записи и региональной конечной точки ECR, например:

123456789012.dkr.ecr.us-east-1.amazonaws.com

Репозиторий - это название места для хранения изображений, например:

myrepo

Тег - это обычные метаданные изображения, например:latest

Ниже приведен полный пример аутентификации и извлечения изображения:

$ aws ecr get-login-password --region ap-southeast-2 \
  | docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.ap-southeast-2.amazonaws.com

$ docker pull 123456789012.dkr.ecr.ap-southeast-2.amazonaws.com/myrepo:latest
latest: Pulling from myrepo
5bed26d33875: Pull complete
Digest: sha256:aabbccdd
Status: Downloaded newer image for 123456789012.dkr.ecr.ap-southeast-2.amazonaws.com/myrepo:latest
123456789012.dkr.ecr.ap-southeast-2.amazonaws.com/myrepo:latest

aws ecr get-login --no-include-email

Это только печатает команду входа в систему. Вам нужно выполнить команду входа в систему, возвращенную этим вызовом.

Попробуй это

eval $(aws ecr get-login --no-include-email)

Другие вопросы по тегам