【问题标题】:.docker/config.json vs .dockercfg.docker/config.json 与 .dockercfg
【发布时间】:2016-02-20 04:20:44
【问题描述】:

当我使用 docker 1.10.1 对私有存储库执行 docker login 时,会在我的 ~/.docker/config.json 文件中创建一个条目。这个文件的格式是否与我看到的 .dockercfg 文件格式相同? config.json 文件可以与.dockercfg 文件互换吗?

【问题讨论】:

    标签: docker docker-machine


    【解决方案1】:

    我假设 config.json 是新的 .dockercfg 文件。
    见“docker/cliconfig/config.go

    // ConfigFileName is the name of config file
    ConfigFileName = "config.json"
    oldConfigfile  = ".dockercfg"
    

    新的配置文件现在记录在man/config-json.5.md

    这是在 docker 1.7.0(2015 年 4 月)中的 commit 18c9b6c 中引入的

    添加 .docker/config.json 并支持 HTTP 标头

    此 PR 执行以下操作:

    • 已将~/.dockerfg 迁移到~/.docker/config.json
      数据已迁移,但旧文件仍保留以备不时之需。

    注意:自 2016 年以来:

    它与docker-daemon.8.md 不同,/etc/docker/daemon.json 默认使用 Docker v1.10 引入的 daemon configuration file

    所以:

    config.json(适用于所有容器)不包括docker run network settings:无法在该配置文件中指定--net=host


    2021 年更新(自 2017 年起),如 cmets 中 slm 所述:

    凭据现在存储在您的操作系统用于管理机密的任何位置。
    在 MacOS 上,它们存储在 Keychain 下,您可以通过在 All Items 下查找“Docker Credentials”来找到它们

    您可以看到docker/docker-credential-helpers 项目:一套使用本地存储来保证 Docker 凭据安全的程序。

    请参阅docker login/Credentials Store 了解更多信息。

    【讨论】:

    • ./docker/config.json和/etc/docker/daemon.json是什么关系?我知道我可以在 config.json 中添加代理。但是如果我想在配置文件中添加“--net=host”,我应该怎么做?
    • @Justalittlenoob 我已编辑答案以解决您的评论/问题。
    • 很好,很详细。谢谢:)
    • 顺便说一句,凭据现在存储在您的操作系统用于管理机密的任何地方。在 MacOS 上,它们存储在 Keychain 下,您可以通过在 All Items 下查找“Docker Credentials”找到它们。
    • @slm 好点,谢谢。我已将您的评论包含在答案中以提高知名度
    猜你喜欢
    • 1970-01-01
    • 2019-06-19
    • 2019-06-15
    • 1970-01-01
    • 2021-04-27
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    相关资源
    最近更新 更多