如何让Docker for Windows生成用于访问Docker Hub上的私有映像的纯文本auth密钥?

时间:2018-01-28 13:09:56

标签: docker docker-windows

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 个答案:

答案 0 :(得分:2)

  1. 从“%UserProfile%/。docker / config.json”文件中删除最后一行:
  2. (不要忘记删除尾随',')

    {
        "auths": {
            "https://index.docker.io/v1/": {}
        },
        "HttpHeaders": {
            "User-Agent": "Docker-Client/17.12.0-ce (windows)"
        }
    }
    
    1. 保存config.json文件。
    2. 运行docker login
    3. 如果查看config.json文件,您现在可以找到所需内容。根据我的理解,这些凭证应该有效,直到您的用户名或密码发生变化(您可以看到为什么在凭证管理器中拥有这些凭据是好的。)。

      复制出auth密钥后,您需要将config.json文件恢复到原始状态:

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

      然后再次运行docker login以恢复原来的状态。