文件是什么
~/.docker/config.json 是 Docker 客户端的个人配置文件:auths 保存登录过的仓库凭据条目,credHelpers 或 credsStore 指向凭据助手,proxies 保存客户端代理设置。核对登录过哪些仓库时,只需要列出 auths 的键名,不要把内容本身输出或分享出去。
基本信息
| 路径 | ~/.docker/config.json |
|---|---|
| 关键节点 | auths、credHelpers、credsStore、proxies |
| 权限要求 | 仅当前用户可读 |
| 敏感程度 | 高,包含凭据或凭据助手引用 |
| 适用平台 | 各平台 Docker CLI |
典型使用场景
- 自查本机登录过哪些镜像仓库
- 排查拉取失败是否与代理设置有关
- 确认是否使用了凭据助手而非明文存储
- 清理不再使用的仓库凭据,配合退出登录命令
- 核查共享构建机上的凭据文件权限
安全的自查方式
安全的自查方式
jq '.auths | keys' ~/.docker/config.json # 只输出仓库名,避免带出凭据
jq '.proxies' ~/.docker/config.json # 查看代理配置
jq 'has("credsStore") or has("credHelpers")' ~/.docker/config.json # 是否使用凭据助手
ls -l ~/.docker/config.json # 核对文件权限节点含义
| 节点 | 含义 | 注意 |
|---|---|---|
| auths | 各仓库的认证条目 | auth 字段是 base64 编码,不是加密 |
| credsStore | 全局凭据助手 | 凭据存系统钥匙串,文件里无明文 |
| credHelpers | 按仓库指定的助手 | 优先级高于全局设置 |
| proxies | 客户端代理设置 | 会影响镜像拉取的网络出口 |
auths 里的 auth 只是 base64(user:password) 编码,等同于明文;排查时只输出键名,避免把凭据带进工单或聊天记录。
该文件权限应保持仅本人可读;在共享机器上发现权限过宽,应先收紧权限再继续其他排查。
凭据治理建议
- 优先使用凭据助手把凭据存进系统钥匙串,减少磁盘上的可解码内容
- 定期核对认证条目清单,清理已经不再使用的仓库登录记录
- 共享机器上把文件权限收敛到仅本人可读,用完记得清理凭据
- 不要把该文件纳入任何形式的分享、备份附件或工单材料
- 排查问题时只输出结构键名,避免凭据被写进日志