Ошибка извлечения 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)