为不同的 Docker 注册表配置“auth”和“credsStore”

为不同的 Docker 注册表配置“auth”和“credsStore”

我正在尝试为两个不同的注册表配置 Docker。(一个 ECR 和一个 docker.io)我需要使用ecr-loginsimple 配置 ECR 和 docker.io,auth但我无法同时配置它们。它给出以下错误:

保存凭证时出错:存储凭证时出错 - 错误:退出状态 1,输出:not implemented

这是我的 ~/.docker/config.json

{
    "auths": {
            "https://index.docker.io/v1/": {
                    "auth": "BASE64-STRING"
            }
    },
    "credsStore": "ecr-login"
}

为什么 Docker 在已经可用credsStore时还要尝试使用?auth

答案1

从 docker 1.13.0 开始,你可以改用新的 credHelper 格式。我从 Google 来到这里,遇到了与 credStore 完全相同的问题,所以我想添加这个以便其他人可以找到。

例子:

$ cat ~/.docker/config.json 
{
        "auths": {
                "ghcr.io": {
                        "auth": "xxx"
                }
        },
        "credHelpers": {
                "xxx1.dkr.ecr.yyy.amazonaws.com": "ecr-login",
                "xxx2.dkr.ecr.yyy.amazonaws.com": "ecr-login"
        }
}

相关内容