直接删除 ~/.docker/config.json 是最快速彻底的注销方式,该文件存储各仓库Base64编码凭据(实为明文),不清理易致安全泄露;也可用 docker logout 逐个登出指定仓库;长期应启用凭据助手(如 pass/Keychain)加密托管密码。
直接删掉 ~/.docker/config.json 文件,是最快速、最彻底的注销方式。这个文件里存着你所有 docker 仓库(docker hub、harbor、ecr 等)的 base64 编码凭据,看似“编码”,实则一解就开,等同于明文泄露。不清理它,换设备、交项目、重装系统时都可能留下安全隐患。
手动删除 config.json 文件
这是最常用也最可控的方法,适合明确要清空全部凭据的场景:
- 执行命令:
rm -f ~/.docker/config.json - 如果目录不存在,先创建:
mkdir -p ~/.docker - 后续首次拉取私有镜像时,Docker 会提示重新登录,凭据不会自动恢复
- 注意:该操作不影响已拉取的镜像、容器或本地构建缓存,只清除认证状态
用 docker logout 逐个登出仓库
适合只想退出特定仓库(比如只登出测试 Harbor,保留生产 ECR 登录态)的运维或开发人员:
- 查看当前已登录的仓库:
cat ~/.docker/config.json | jq -r '.auths | keys[]'(需安装jq) - 登出指定仓库:
docker logout https://harbor.example.com - 登出 Docker Hub:
docker logout(不带参数即默认登出 hub.docker.com) - 每次登出后,对应仓库的 auth 字段会从 config.json 中移除,安全又精准
替换为更安全的凭据助手
单纯删文件只是“清旧”,长期方案是避免凭据落盘。推荐改用凭据助手(Credential Helper),让密码由系统密钥环(如 macOS Keychain、Linux pass 或 Windows Credential Manager)托管:
- 安装对应工具,例如 Linux 上:
sudo apt install docker-credential-pass - 配置
~/.docker/config.json,加入:
"credsStore": "pass" - 之后再
docker login,密码将加密存入系统密钥管理器,config.json 中不再出现 auth 字段 - 这样即使 config.json 被窃取,也无法还原凭据
不复杂但容易忽略——凭据不是“用完就扔”,而是得主动管、分层防、定期清。


















