我如何使用ecr与其他注册表的正常docker登录

时间:2018-04-20 02:18:30

标签: amazon-web-services docker gitlab

我想使用普通docker login作为普通的东西但是对于ecr我想在教程中提到的credHelpers

https://docs.docker.com/engine/reference/commandline/login/#credential-helpers

但看起来它告诉我要替换整个文件

〜/ .docker / config.json with

{
"credHelpers": {
                "aws_account_id.dkr.ecr.region.amazonaws.com": "ecr-login"
        }

}

但是我的文件已经有了这个版本,而且我不想破坏东西

{
        "auths": {
                "registry.gitlab.com": {
                        "auth": "fdfdfdfdfd"
                }
        }
}
我可以做点什么吗

{
        "auths": {
                "registry.gitlab.com": {
                        "auth": "fdfdfdfdfd"
                }
        },


"credHelpers": {
                "dfdfdfdfd.dkr.ecr.region.amazonaws.com": "ecr-login"
        }

}

2 个答案:

答案 0 :(得分:1)

Configuration files所示,情况并非如此:您可以同时拥有credHelper和登录信息(不在同一个域中)

所以你可以做你想做的事情,可能会手动将你的credHelper信息添加到配置文件中。

Issue 41提及:

  

通过添加auths,我已经能够使credsStore工作正常

{
  "auths" : {
    "registry.gitlab.com": { "auth": "fdfdfdfdfd" },
    "[aws_account_id].dkr.ecr.[region].amazonaws.com" : {}
  },
  "credsStore" : "ecr-login"
}

因此,您可以在auths个网址中列出凭据或凭据(空{})。后者将由凭证助手(如awslabs/amazon-ecr-credential-helper

管理

imdibiji报告in the comments,必须使用以下格式来避免:

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

格式:

{
  "auths": {
     "index.docker.io/v1": {"auth": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } }, 
   "credHelpers": { "XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com": "ecr-login" }
}

答案 1 :(得分:0)

我需要与 Docker Hub 并行使用的 AWS ECR,因为我使用免费的 Docker 映像以及 ECR 中我自己的映像。不得不这样写配置,不然老是提示“docker-credential-ecr-login can only be used with Amazon Elastic Container Registry”:

{
  "auths": {
    "https://index.docker.io/v1/": {}
  },
  "credHelpers": {
    "<account>.dkr.ecr.<region>.amazonaws.com": "ecr-login"
  }
}

效果很好。