Help us understand the problem. What is going on with this article?

docker-credential-ecr-login can only be used with Amazon Elastic Container Registry. のエラーを消す

docker-credential-ecr-login とは?

docker-credential-ecr-login っていうのは、 Amazon ECR (Amazon が提供している Dockerレジストリサービス)に、PCからアクセスする際に必要になるログイン作業を、自動化してくれるツールです。

amazon-ecr-credential-helper と同じものです。(多分)

インストール方法等、詳細はこちらをご覧ください。
amazon-ecr-credential-helperをWindowsにインストールする

プルしたら docker-credential-ecr-login でエラーが発生した

新しいPCに docker-credential-ecr-login をインストールして、 docker pull node:12.3.1-alpine を実行したところ、以下のエラーが発生しました。

$ docker pull node:12.3.1-alpine
ERRO[0000] Error parsing the serverURL                   
error="docker-credential-ecr-login can only be used with Amazon Elastic Container Registry." 
serverURL="https://index.docker.io/v1/"

docker-credential-ecr-login 使って https://index.docker.io/v1/ (Docker Hubのこと) にアクセスしようとしてますけど、 docker-credential-ecr-login はAmazon ECRでしか使えませんよ!

みたいな意味だと思います。

credsStore じゃなくて credHelpers を使わなきゃダメらしい

こちらの記事に同じ症状のことが記載されてました。
docker-credential-ecr-login can only be used with Amazon Elastic Container Registry

どうやら、 config.jsoncredsStore を使うのはダメで、 credHelpers を使わなきゃいけないみたいです。

config.json を修正した

%USERPROFILE%\.docker\config.json を確認したところ、以下のようになっていました。

{
  // 省略
  "credsStore": "ecr-login",
  // 省略
}

この credsStore の行を削除して、以下のように書き換えます。

{
  // 省略
  "credHelpers": {
    "{AWSアカウントID}.dkr.ecr.{リージョン名}.amazonaws.com": "ecr-login"
  },
  // 省略
}

例えば、

  • AWSアカウントID00000000000000
  • リージョン名ap-northeast-1

の場合、00000000000000.dkr.ecr.ap-northeast-1.amazonaws.com となります。

ちなみに、 * 等のワイルドカードは使えませんので、ご注意ください。
例えば、 *.dkr.ecr.*.amazonaws.com みたいなのはNGです。(私の環境で試したところ、ダメでした。)

これで再度、 docker pull node:12.3.1-alpine を実行したところ、無事にプルすることができました。

念のため、 ECRからもプルを試してみたところ、そちらも大丈夫でした。

さいごに

以下のサイトを参考にさせていただきました。

segur
Unity認定プログラマー。VR学会認定技術者。xRエンジニア。ガジェットが大好きなギーク。毎日バックパックPCを背負ってる。 色んなコンピュータ言語に触れるのが好き。 開発経験言語(触った順)HSP/BASIC/C/C++/Verilog/PHP/Java/JavaScript/C#/Python/ShaderLab/Ruby/Go/TypeScript
https://segurvita.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした