如何让 Docker for Windows 生成一个明文身份验证密钥,用于访问 Docker Hub 上的私有映像



Amazon Elastic Beanstalk 需要 Docker 的明文密钥才能访问 Docker Hub 上的私有映像。根据AEB上的说明,您只需运行docker login即可在"%UserProfile%/.docker/config.json"中生成这些凭据。但是,这会生成以下文件:

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/17.12.0-ce (windows)"
    },
    "credsStore": "wincred"
}
凭据

存储在Windows凭据管理器"wincred"中。

如何强制在 config.json 文件中临时生成凭据?

  1. 从"%UserProfile%/.docker/config.json"文件中删除最后一行:

(不要忘记删除尾随的","(

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/17.12.0-ce (windows)"
    }
}
  1. 保存 config.json 文件。
  2. 运行docker login .

如果你查看 config.json 文件,你现在会找到你需要的东西。据我了解,在您的用户名或密码更改之前,这些凭据应该有效(您可以看到为什么在凭据管理器中使用这些凭据是件好事!

复制身份验证密钥后,您需要将 config.json 文件还原到其原始状态:

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/17.12.0-ce (windows)"
    },
    "credsStore": "wincred"
}

然后再次运行docker login,将事情恢复原样。

最新更新