科技 · 實用指南
Docker 找不到憑據助手?先追蹤設定、程式與呼叫者
先證明是哪份 Docker 設定選了哪個 docker-credential-* 程式,以及同一使用者、WSL、sudo 或服務程序能否執行它,再決定是否調整憑據儲存。

這個錯誤點名的是一個程式,而不是已損壞的密碼:Docker 選了 docker-credential-desktop、docker-credential-gcloud 等憑據助手,但啟動 Docker 的程序無法執行它。刪除 config.json 或把 credsStore 拼錯可能暫時隱藏呼叫,卻也可能關閉預期的安全儲存。
保留原檔,確認 Docker 實際使用的設定與目標倉庫項目,把選中的後綴轉成 docker-credential-<後綴>,再從同一使用者、shell、sudo、WSL 或服務環境驗證可見性。只修復已證明損壞的邊界。
凍結呼叫環境與有效設定
記錄準確的失敗命令和倉庫,並記錄 whoami、HOME、DOCKER_CONFIG、shell 或服務,以及是否經過 sudo 或 WSL。編輯前把有效的 config.json 複製到私密備份;不要把 auth、權杖或助手輸出寫入記錄。
只檢查選擇助手的非秘密結構:先看目標倉庫的 credHelpers,再看全域 credsStore。若設定了 DOCKER_CONFIG,或命令由 root、服務帳戶、另一 Windows/WSL 使用者執行,就檢查該呼叫者的檔案。
把設定值映射到唯一程式
credHelpers 為目標倉庫選擇 gcloud 時,預期命令是 docker-credential-gcloud;credsStore 為 desktop 時,預期命令是 docker-credential-desktop。後綴是 Docker 實際執行的程式名,不是猜測的套件名。
在同一呼叫環境中用 command -v、type -a 或平台等價命令定位該程式。若不存在,先區分過期的 Docker Desktop 橋接和主動設定的獨立助手,再考慮安裝、複製或建立連結。
區分 PATH 故障與助手內部故障
執行該助手文件支援且不會洩漏秘密的能力檢查,例如版本或清單命令。若官方提供 get 測試,把回傳的 Secret 視為敏感資訊,絕不要寫入共用記錄。
若 shell 無法啟動助手,應修復安裝或 PATH;若助手能啟動卻回報鑰匙圈、pass、gpg、Desktop 橋接或雲端認證錯誤,就停止修改 Docker 設定,轉而排查該助手。
只修復已證明的最小邊界
倉庫鍵或後綴錯誤時,只做精確設定修改;官方助手缺失時,恢復該確切程式;使用者、root、WSL 或服務不一致時,為真正執行 Docker 的程序對齊 HOME、DOCKER_CONFIG 與 PATH。
不要把 credsStore 改成 credStore 作為永久修復。後者不是有效儲存鍵,Docker 會忽略它;只有明確選擇另一套文件化認證方案時,才刪除或替換儲存設定。
重試原路徑並定義成功
重新啟動同一 shell、服務、CI 任務或 WSL 發行版,再針對同一倉庫執行原 Docker 命令。成功意味著助手執行錯誤消失、Docker 到達預期憑據儲存,而且不是另一使用者或設定碰巧提供結果。
若解析到意外副本、設定立即被重新產生,或錯誤只在 sudo/自動化中回來,就停止並重新比較呼叫者清單。在確認設定擁有者和受支援助手前,不要刪除已儲存憑據。
