DockerコマンドがMacで見つからない問題の解決方法
問題の概要
MacでDockerコマンドを実行しようとすると、以下のエラーが発生します:
sudo: docker: command not found
この問題は、Docker Desktopが正常にインストールされているにもかかわらず、ターミナルからdocker
コマンドにアクセスできない場合に発生します。特にDocker Desktopのバージョン4.18以降では、CLIツールのインストール場所が変更されたことが原因の一つです。
根本原因
Docker Desktop for Macのバージョン4.18以降では、デフォルト設定でDocker CLIツールが以下の場所にインストールされます:
- ユーザー設定モード:
$HOME/.docker/bin
- システム設定モデ:
/usr/local/bin
多くのシステムでは/usr/local/bin
はデフォルトでPATHに含まれていますが、$HOME/.docker/bin
は含まれていないため、この問題が発生します。
解決方法
方法1: Docker Desktopの設定変更(推奨)
最も簡単な解決方法は、Docker Desktopの設定を変更することです:
- Docker Desktopを開き、設定(⚙️)をクリック
- 「Advanced」タブを選択
- 「Choose how to configure the installation of Docker's CLI tools」で「System」を選択
- 「Apply & Restart」をクリック
TIP
すでに「System」が選択されている場合は、一度「User」に変更して「Apply & Restart」し、再度「System」に戻して「Apply & Restart」することで問題が解決することがあります。
方法2: PATH環境変数への追加
設定変更ができない場合や、特定の理由でユーザーモードを使用する必要がある場合は、PATH環境変数にDockerのパスを追加します:
まず、使用しているシェルを確認します:
echo $0
ZSHを使用している場合(最新のMacOSデフォルト):
echo 'export PATH="$PATH:$HOME/.docker/bin"' >> ~/.zshrc
source ~/.zshrc
Bashを使用している場合:
echo 'export PATH="$PATH:$HOME/.docker/bin"' >> ~/.bash_profile
source ~/.bash_profile
方法3: エイリアスの設定
一時的な解決策として、エイリアスを設定する方法もあります:
echo 'alias docker="/Applications/Docker.app/Contents/Resources/bin/docker"' >> ~/.zshrc
source ~/.zshrc
方法4: /etc/paths.d/へのパス追加
システム全体にパスを追加する方法:
echo "/Applications/Docker.app/Contents/Resources/bin" | sudo tee /etc/paths.d/docker
新しいターミナルを開くと変更が反映されます。
トラブルシューティング
インストールの確認
まずDocker Desktopが正しくインストールされているか確認してください:
- アプリケーションフォルダにDocker.appが存在するか確認
- Docker Desktopが起動しているか確認
パスの確認
現在のPATH設定を確認する:
echo $PATH
Dockerのパスが含まれているか確認する:
ls /Applications/Docker.app/Contents/Resources/bin/docker
ls $HOME/.docker/bin/docker 2>/dev/null || echo "Not found in user directory"
注意点
WARNING
Homebrewでbrew install docker
を実行しても、Docker Desktopはインストールされません。HomebrewのdockerパッケージはDocker Engineのみをインストールし、Docker Desktopの機能は含まれていません。
正しいインストール方法はDocker公式サイトからDocker Desktop for Macをダウンロードしてインストールすることです。
まとめ
Macでdocker: command not found
エラーが発生した場合、以下の順序で対処することをおすすめします:
- Docker Desktopの設定で「System」 installationを選択
- それでも解決しない場合、PATHに
$HOME/.docker/bin
を追加 - それでも問題が解決しない場合は、Docker Desktopの再インストールを検討
どの方法を選択する場合も、変更後にターミナルの再起動または設定ファイルの再読み込み(source
コマンド)が必要です。