Skip to content

docker-credential-desktop のエラー解決方法

Dockerを使用する際に「docker-credential-desktop not installed or not available in PATH」というエラーが発生する場合の解決方法について詳しく解説します。

問題の概要

このエラーは、Dockerの認証情報ヘルパー(credential helper)である docker-credential-desktop が正しく設定されていない場合に発生します。特に、Docker Desktopとコマンドラインツールの混在インストールや、環境設定の不整合によってよく起こります。

主要な解決策

方法1: config.jsonの修正(最も一般的な解決策)

Dockerの設定ファイル ~/.docker/config.jsoncredsStore 設定を修正します。

bash
sed -i '' 's/"credsStore"/"credStore"/g' ~/.docker/config.json

修正後の設定例:

json
{
  "stackOrchestrator": "swarm",
  "experimental": "disabled",
  "credStore": "desktop"
}

TIP

この修正は、設定キー名のタイポを修正するもので、Dockerの認証情報ストアの設定を無効化します。一時的な解決策として有効ですが、セキュリティ上の理由から長期的には適切な認証情報ヘルパーの設定を推奨します。

方法2: credsStoreエントリの完全削除

Docker Desktopをインストールした後にこの問題が発生した場合は、credsStoreエントリを完全に削除する方法も有効です。

json
{
  "stackOrchestrator": "swarm",
  "experimental": "disabled"
}

方法3: macOSでの正しい認証情報ヘルパーの設定

macOSでは、docker-credential-osxkeychain を使用するのが適切です。

  1. 認証情報ヘルパーのインストール
bash
brew install docker-credential-helper
  1. インストールの確認
bash
docker-credential-osxkeychain version
  1. config.jsonの設定
json
{
  "auths": {
    "https://index.docker.io/v1/": {}
  },
  "credsStore": "osxkeychain",
  "experimental": "enabled",
  "stackOrchestrator": "swarm"
}
  1. Dockerへのログイン
bash
docker login -u [ユーザー名]

方法4: WSL2環境での解決策

WSL2を使用している場合、シンボリックリンクの修正が必要なことがあります。

  1. 既存のリンクを確認と削除
bash
ls -l /usr/bin/docker-credential-desktop.exe
sudo rm /usr/bin/docker-credential-desktop.exe
  1. 新しいシンボリックリンクの作成
bash
sudo ln -s /wsl/docker-desktop/cli-tools/usr/bin/docker-credential-desktop.exe /usr/bin/docker-credential-desktop
  1. PATHの更新
bash
source ~/.bashrc

詳細な解説

エラーの根本原因

このエラーは、Dockerが認証情報の保存と取得に使用するクレデンシャルヘルパーが見つからない場合に発生します。Docker Desktopとコマンドライン版のDockerを混在させてインストールすると、設定ファイルに矛盾が生じることが原因です。

設定ファイルの場所

Dockerの設定ファイルは ~/.docker/config.json にあります。このファイルはDockerの各種設定を保存しており、認証情報の管理方法もここで指定されます。

WARNING

設定ファイルを編集する前には、必ずバックアップを作成してください。誤った編集によりDockerが正常に動作しなくなる可能性があります。

予防策

  1. 一貫したインストール方法の選択

    • Docker Desktopのみを使用する
    • またはコマンドラインツールのみを使用する
    • 混在インストールは避ける
  2. 環境のクリーンアップ 古いDockerインストールがある場合は、完全にアンインストールしてから再インストールします。

  3. ホームブリューの適切な使用 Docker関連ツールはHomebrewで一貫して管理することを推奨します。

トラブルシューティング

問題が解決しない場合、以下のコマンドで詳細な情報を確認できます。

bash
# Dockerのバージョン確認
docker --version

# 設定ファイルの確認
cat ~/.docker/config.json

# 認証情報ヘルパーのパス確認
which docker-credential-desktop

まとめ

「docker-credential-desktop not installed or not available in PATH」エラーは、Dockerの認証情報ヘルパーの設定問題によって発生します。本記事で紹介した解決策の中から、ご自身の環境に適した方法をお試しください。特に、macOSではosxkeychainの使用、WSL2環境ではシンボリックリンクの修正が効果的です。

INFO

Dockerの認証情報管理はセキュリティに関わる重要な機能です。一時的な回避策ではなく、環境に適した正しい認証情報ヘルパーの設定を行うことをお勧めします。