Docker cannot find docker-compose エラーの原因と解決方法を完全解説
はじめに
Docker環境を構築していると、「docker-compose: command not found」というエラーに遭遇することがあります。このエラーは、Dockerをインストールしたのにdocker-composeが見つからないという状況です。特に初心者の方がこのエラーで困っていることが多いため、この記事では原因から解決方法まで詳しく説明します。
1. Docker cannot find docker-composeエラーの原因
1-1. docker-composeがインストールされていない
最も一般的な原因は、docker-composeがシステムにインストールされていないことです。Dockerと異なり、docker-composeは別途インストールが必要なツールです。Docker DesktopでインストールされたDockerには統合されていますが、Linuxサーバーなどでコマンドラインからインストールした場合は、docker-composeを別途インストールする必要があります。
1-2. PATHが正しく設定されていない
docker-composeはインストールされているものの、システムのPATH環境変数に含まれていない場合があります。これにより、コマンドが見つからないエラーが発生します。
1-3. docker-composeのバージョンが古い
古いバージョンのdocker-composeが入っている場合、互換性の問題が生じることがあります。
1-4. Docker DesktopでLinux コンテナーモードが正しく設定されていない
Windows や macOS で Docker Desktop を使用している場合、コンテナーモードの設定に問題があると、docker-compose が使用できないことがあります。
2. 解決手順(ステップバイステップ)
ステップ1: 現在の状況を確認する
まず、docker-compose が本当にインストールされていないか、または PATH に含まれていないかを確認しましょう。
docker-compose --version
このコマンドを実行して「command not found」が表示される場合は、docker-compose がインストールされていません。
ステップ2: Dockerがインストールされていることを確認
docker-compose をインストールする前に、Docker 自体がインストールされていることを確認してください。
docker --version
Docker がインストールされている場合はバージョンが表示されます。
ステップ3: docker-composeのインストール(Linux)
Linux環境(Ubuntu、CentOSなど)でのインストール手順です。
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
このコマンドで以下の処理が行われます:
- GitHub から最新の docker-compose バイナリーをダウンロード
- /usr/local/bin ディレクトリーに配置(PATH に含まれている場所)
- 実行権限を付与
- インストール確認
ステップ4: docker-composeのインストール(MacOS)
Docker Desktop for Mac を使用している場合、docker-compose は既に含まれています。もし見つからない場合は、Homebrew を使ってインストールできます。
brew install docker-compose
docker-compose --version
ステップ5: docker-composeのインストール(Windows)
Docker Desktop for Windows を使用している場合、docker-compose は既に含まれています。PowerShell で以下を実行して確認してください。
docker-compose --version
見つからない場合は、Docker Desktop を再インストールするか、以下の方法で手動インストールできます。
Invoke-WebRequest "https://github.com/docker/compose/releases/latest/download/docker-compose-Windows-x86_64.exe" -OutFile $env:ProgramFiles\Docker\docker-compose.exe
ステップ6: PATH の確認と設定
インストール後も見つからない場合は、PATH 環境変数を確認します。
echo $PATH
/usr/local/bin が含まれていることを確認してください。含まれていない場合は、.bashrc または .zshrc に以下を追加します。
export PATH="/usr/local/bin:$PATH"
その後、ターミナルを再起動するか、以下を実行します。
source ~/.bashrc # または source ~/.zshrc
ステップ7: インストール確認
最後に、docker-compose が正しくインストールされたことを確認します。
docker-compose --version
バージョン情報が表示されれば、インストールは成功しています。
3. コード例とトラブルシューティング
例1: docker-compose.yml ファイルでの基本的な使用例
docker-compose が正常にインストールされた後、以下のような docker-compose.yml ファイルを作成できます。
version: '3.8'
services:
web:
image: nginx:latest
container_name: my-nginx
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:5.7
container_name: my-mysql
environment:
MYSQL_ROOT_PASSWORD: password123
ports:
- "3306:3306"
このファイルで以下のコマンドを実行します。
# コンテナーの起動
docker-compose up -d
# ログの確認
docker-compose logs
# コンテナーの停止
docker-compose down
例2: 診断用スクリプト
インストールの問題を診断するスクリプトを作成しました。
#!/bin/bash
echo "=== Docker 環境診断 ==="
echo "\n1. Docker バージョン確認"
if command -v docker &> /dev/null; then
docker --version
else
echo "❌ Docker がインストールされていません"
fi
echo "\n2. docker-compose バージョン確認"
if command -v docker-compose &> /dev/null; then
docker-compose --version
else
echo "❌ docker-compose がインストールされていません"
fi
echo "\n3. PATH 環境変数確認"
echo $PATH
echo "\n4. /usr/local/bin 内容確認"
ls -la /usr/local/bin/docker-compose 2>/dev/null || echo "❌ /usr/local/bin に docker-compose がありません"
echo "\n5. 実行権限確認"
stat -c '%A' /usr/local/bin/docker-compose 2>/dev/null || echo "ファイルが存在しません"
このスクリプトを diagnosis.sh として保存し、以下で実行します。
chmod +x diagnosis.sh
./diagnosis.sh
4. よくある間違いと対策
間違い1: docker と docker-compose の違いを理解していない
よくある間違い: Docker をインストールすれば docker-compose も自動的に入ると思う
正しい理解: Docker と docker-compose は異なるツールです。特に Linux サーバーでは別途インストールが必要です。
対策: インストール後、必ず両方のバージョンを確認してください。
間違い2: インストール先のパスを間違えている
よくある間違い: docker-compose をランダムなディレクトリーにダウンロードしてしまう
正しい方法: システムの PATH に含まれているディレクトリーにインストールします。
# PATH に含まれるディレクトリーを確認
echo $PATH | tr ':' '\n'
# 一般的には /usr/local/bin が使われます
which docker # docker の場所を確認
間違い3: 実行権限を付与していない
よくある間違い: chmod +x を実行忘れ
正しい手順:
sudo chmod +x /usr/local/bin/docker-compose
# 確認
ls -la /usr/local/bin/docker-compose
間違い4: 古いバージョンとの競合
よくある間違い: 古い docker-compose が別の場所に残っている
対策:
# 複数の docker-compose の場所を確認
which -a docker-compose
# または
locate docker-compose
# 見つかったら古いバージョンを削除
sudo rm /path/to/old/docker-compose
間truly 5: Docker デーモンが起動していない
よくある間違い: docker-compose はインストールされているが、Docker デーモンが起動していない
対策:
# Docker デーモンの状態確認
sudo systemctl status docker
# Docker デーモンの起動
sudo systemctl start docker
# 自動起動設定
sudo systemctl enable docker
5. トラブルシューティングチェックリスト
問題が解決しない場合は、以下のチェックリストを確認してください。
#!/bin/bash
echo "トラブルシューティングチェックリスト"
echo "===================================="
echo "\n✓ Docker がインストールされているか"
docker --version
echo "\n✓ docker-compose がインストールされているか"
docker-compose --version
echo "\n✓ docker-compose に実行権限があるか"
stat /usr/local/bin/docker-compose | grep -i access
echo "\n✓ Docker デーモンが起動しているか"
docker ps
echo "\n✓ ユーザーが docker グループに属しているか"
groups $USER | grep docker
echo "\n✓ docker-compose.yml ファイルが存在するか"
ls -la docker-compose.yml
echo "\n✓ YAML ファイルの文法が正しいか"
docker-compose config
6. まとめ
「Docker cannot find docker-compose」エラーは、初心者がよく遭遇するエラーです。しかし、適切な手順に従うことで簡単に解決できます。
解決方法のまとめ
- 原因の特定: docker-compose –version でインストール状況を確認
- インストール: Linux は公式サイトからバイナリーをダウンロード、macOS と Windows は Docker Desktop に含まれています
- PATH の設定: /usr/local/bin など、PATH に含まれるディレクトリーにインストール
- 実行権限: sudo chmod +x で実行権限を付与
- 確認: docker-compose –version で動作確認
予防策
- Docker と docker-compose は異なるツールであることを理解する
- Linux と macOS、Windows でインストール方法が異なることを認識する
- インストール後は必ずバージョンを確認する
- 定期的に両方のツールをアップデートする
さらなる学習
docker-compose が正常に動作するようになったら、以下のステップに進むことをお勧めします。
- docker-compose.yml ファイルの記述方法を学ぶ
- 複数のサービスを管理する方法を理解する
- 環境変数や .env ファイルの使い方を学ぶ
- Docker Compose でのネットワーク設定を理解する
このガイドが皆さんの問題解決に役立てば幸いです。Docker と docker-compose を使いこなして、効率的な開発環境を構築してください。

