Amazon ECRでパブリックリポジトリの提供が開始されました🎉
その名の通り、認証情報なしでdocker pull
が可能となるわけですが、状況によってはpull access denied for public.ecr.aws
となってしまいます。
TL;DR
$ docker logout public.ecr.aws
でOK
状況
ECRパブリックリポジトリを使いたく、イメージを登録しました。その時のご案内がこちら。
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/xxxx
当然なのですが、プッシュする際は、public.ecr.aws
に対して認証情報を生成する必要があります。
しばらくはこの状態で、パブリックリポジトリからpull出来ましたが突然pull access denied for public.ecr.aws
という状況に。
エラーメッセージのとおりですが、認証期限があるので期限切れになってしまっています。
エラーメッセージに従うとdocker login
が必要ですが、何のためのパブリックリポジトリやねん、という感じなので認証情報を削除しましょう。
認証情報の削除方法
docker logout
をするわけですが、デフォルトでは、https://index.docker.io/v1/
に対してのログアウトとなってしまうので、 link
$ docker logout public.ecr.aws
というように、サーバを指定しましょう。