【发布时间】:2016-02-20 04:20:44
【问题描述】:
当我使用 docker 1.10.1 对私有存储库执行 docker login 时,会在我的 ~/.docker/config.json 文件中创建一个条目。这个文件的格式是否与我看到的 .dockercfg 文件格式相同? config.json 文件可以与.dockercfg 文件互换吗?
【问题讨论】:
标签: docker docker-machine
当我使用 docker 1.10.1 对私有存储库执行 docker login 时,会在我的 ~/.docker/config.json 文件中创建一个条目。这个文件的格式是否与我看到的 .dockercfg 文件格式相同? config.json 文件可以与.dockercfg 文件互换吗?
【问题讨论】:
标签: docker docker-machine
我假设 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 年以来:
config-json.5 到 docker-config-json.5 (commit a596d3d, docker docs-v1.12.0-2016-07-28)docker/cli(commit b5579a4,Docker v17.07.0-ce-rc1)它与docker-daemon.8.md 不同,/etc/docker/daemon.json 默认使用 Docker v1.10 引入的 daemon configuration file。
所以:
config.json 用于docker CLI
daemon.json 用于dockerd (daemon) CLI
但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 了解更多信息。
【讨论】: