当我使用Docker 1.10.1执行docker login
登录到私有仓库时,会在我的~/.docker/config.json
文件中创建一个条目。这个文件的格式是否与被称为.dockercfg
文件的格式相同?config.json
文件是否可以与.dockercfg
文件互换使用?
当我使用Docker 1.10.1执行docker login
登录到私有仓库时,会在我的~/.docker/config.json
文件中创建一个条目。这个文件的格式是否与被称为.dockercfg
文件的格式相同?config.json
文件是否可以与.dockercfg
文件互换使用?
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月)中引入的提交18c9b6c。
添加
.docker/config.json
和HTTP头支持此PR执行以下操作:
- 将
~/.dockerfg
迁移到~/.docker/config.json
。
数据已迁移,但旧文件仍然存在以防需要。
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引入的守护进程配置文件。
因此:
config.json
用于Docker CLIdaemon.json
用于dockerd(守护进程)CLI但是适用于所有容器的config.json
(与编排相关)不包括docker run
网络设置:--net=host
无法在该配置文件中指定。
2021年更新(自2017年以来),如评论中slm所述:
凭据现在存储在您的操作系统用于管理机密信息的位置中。
在MacOS上,它们存储在Keychain下,您可以通过查找“所有项目”下的“Docker凭据”来找到它们
您可以查看项目docker/docker-credential-helpers
:一组程序,可使用本地存储来保护Docker凭据。
有关更多信息,请参见docker login/Credentials Store。