`docker logout docker.io` does not remove Docker Hub credentials
还没有人认领这个 Issue。
评估
调研方向
查看 CLI 代码库中的登录和注销命令实现,可能在 cli/command/registry 下。比较登录过程中 docker.io 如何被规范化为 https://index.docker.io/v1/。修复方法是确保注销使用相同的规范化。首先在本地复现问题以确认行为,然后找到注销逻辑并应用规范化。通过运行修补后的注销命令后检查 config.json 文件来验证。
由索引模型根据 Issue 内容生成。
描述
Description
For Docker Hub, docker login canonicalizes docker.io to https://index.docker.io/v1/, while docker logout does not appear to apply the same canonicalization logic.
For example, when a user explicitly logs in with:
docker login docker.io
the credentials are stored in config.json under the canonical Docker Hub key:
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "..."
}
}
}
However, when the user explicitly logs out with:
docker logout docker.io
the logout logic attempts to remove credentials associated with docker.io from config.json.
Since the credentials were actually stored under https://index.docker.io/v1/, no matching docker.io entry exists, so the stored Docker Hub credentials are not removed.
In other words, docker login docker.io and docker logout docker.io use inconsistent registry host normalization for Docker Hub.
docker login docker.io and docker logout docker.io use inconsistent registry host normalization for Docker Hub.
Reproduce
- Run
docker login docker.ioand authenticate successfully. - Check
~/.docker/config.jsonand verify that the credentials are stored underhttps://index.docker.io/v1/. - Run
docker logout docker.io. - Check
~/.docker/config.jsonagain. - Observe that the Docker Hub credentials under
https://index.docker.io/v1/are still present.
Expected behavior
Running docker logout docker.io should remove the Docker Hub credentials stored under https://index.docker.io/v1/.
docker version
Client:
Version: 29.8.0
API version: 1.56
Go version: go1.26.8
Git commit: 88096ef
Built: Thu Sep 3 21:53:38 2026
OS/Arch: windows/amd64
Context: desktop-linux
failed to connect to the docker API at npipe:////./pipe/dockerDesktopLinuxEngine; check if the path is correct and if the daemon is running: open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
docker info
Client:
Version: 29.8.0
Context: desktop-linux
Debug Mode: false
Plugins:
agent: Docker AI Agent Runner (Docker Inc.)
Version: v1.136.0
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-agent.exe
ai: Docker AI Agent - Ask Gordon (Docker Inc.)
Version: v1.31.0
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-ai.exe
buildx: Docker Buildx (Docker Inc.)
Version: v0.37.0
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-buildx.exe
compose: Docker Compose (Docker Inc.)
Version: v5.5.1
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-compose.exe
debug: Get a shell into any image or container (Docker Inc.)
Version: 0.0.47
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-debug.exe
desktop: Docker Desktop commands (Docker Inc.)
Version: v0.4.4
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-desktop.exe
dhi: CLI for managing Docker Hardened Images (Docker Inc.)
Version: v0.0.7
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-dhi.exe
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.31
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-extension.exe
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v1.4.0
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-init.exe
mcp: Docker MCP Plugin (Docker Inc.)
Version: v0.43.3
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-mcp.exe
model: Docker Model Runner (Docker Inc.)
Version: v1.2.6
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-model.exe
offload: Docker Offload (Docker Inc.)
Version: v0.6.17
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-offload.exe
pass: Docker Pass Secrets Manager Plugin (beta) (Docker Inc.)
Version: v0.2.2
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-pass.exe
sandbox: "docker sandbox" is deprecated, use Docker Sandboxes instead (Docker Inc.)
Version: v0.13.0
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-sandbox.exe
scout: Docker Scout (Docker Inc.)
Version: v1.24.0
Path: C:\Users\yin2hao\.docker\cli-plugins\docker-scout.exe
Server:
failed to connect to the docker API at npipe:////./pipe/dockerDesktopLinuxEngine; check if the path is correct and if the daemon is running: open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
Additional Info
No response
- 主要语言
- Go
- 星标
- 6.1k
- 派生
- 2.2k
- 平均合并
- 1 天 10 小时
- 30 天内合并 PR
- 47
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
docker/cli 的其他 Issue
-
kind/bug status/0-triage
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 74/100
-
kind/feature status/0-triage
难度 2/5 1-3 小时 新手友好度 70/100
-
kind/bug status/0-triage
难度 2/5 1-3 小时 新手友好度 76/100
-
kind/bug status/0-triage
难度 2/5 1-3 小时 新手友好度 63/100
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 60/100
github/gh-aw-mcpg#13748 ·
-
agentic-workflows
难度 2/5 1-3 小时 新手友好度 65/100
-
needs-triage
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 2/5 1-3 小时 新手友好度 75/100
googleapis/librarian#7670 · 2 条评论 ·