# docker-composeとdocker composeの違いについて調べてみた

> docker-composeとdocker composeの違いについて解説し、非推奨となった背景や新しいCompose V2の利点をまとめた記事です。

- 公開日: 2025-04-28
- 著者: そうま
- タグ: Docker
- URL: https://tech.anycloud.co.jp/articles/docker-compose-v1-vs-v2

---

最近突然、docker-composeコマンドが使えなくなり、調べてみるとdocker-composeが非推奨となり、docker composeを推奨するようになっていました。

docker-composeが非推奨になったのは、2年前頃の話なので、かなり今更ですがこの2つの違いについて調べたので、備忘録的に書いておきます。

## docker-composeとdocker composeの違い

<table><tbody><tr><th colspan="1" rowspan="1"><p>項目</p></th><th colspan="1" rowspan="1"><p>docker-compose</p></th><th colspan="1" rowspan="1"><p>docker compose</p></th></tr><tr><td colspan="1" rowspan="1"><p>提供形式</p></td><td colspan="1" rowspan="1"><p>独立した Python 製 CLI ツール</p></td><td colspan="1" rowspan="1"><p>Docker CLI に統合されたサブコマンド</p></td></tr><tr><td colspan="1" rowspan="1"><p>実行方法</p></td><td colspan="1" rowspan="1"><p>docker-compose up</p></td><td colspan="1" rowspan="1"><p>docker compose up</p></td></tr><tr><td colspan="1" rowspan="1"><p>インストール</p></td><td colspan="1" rowspan="1"><p>別途インストールが必要</p></td><td colspan="1" rowspan="1"><p>Docker に標準で含まれる（v20.10.13〜）</p></td></tr><tr><td colspan="1" rowspan="1"><p>バージョン</p></td><td colspan="1" rowspan="1"><p>Compose V1</p></td><td colspan="1" rowspan="1"><p>Compose V2（現行）</p></td></tr><tr><td colspan="1" rowspan="1"><p>サポート状況</p></td><td colspan="1" rowspan="1"><p>メンテナンスモード（非推奨）</p></td><td colspan="1" rowspan="1"><p>公式推奨</p></td></tr><tr><td colspan="1" rowspan="1"><p>パフォーマンス</p></td><td colspan="1" rowspan="1"><p>標準的</p></td><td colspan="1" rowspan="1"><p>より高速で安定（Go 製）</p></td></tr></tbody></table>

**主な違いのポイント**

-   docker-composeは、Pythonで作られた古いCLIツールで、Docker CLIとは別プロセスとして動作します。
-   docker composeは、Go言語で書き直されており、Docker CLIに統合されたサブコマンドです（Compose V2と呼ばれます）。

つまり、コマンド名の違いだけでなく、中身もまったく別物になっています。

## docker-composeが非推奨になった背景

Dockerは2021年〜2022年にかけて、Composeのアーキテクチャを大きく見直しました。

### **背景1：CLI統合によるユーザー体験の向上**

docker-compose はDocker CLIとは別のツールであったため、操作感や連携の面で一貫性に欠けていました。

これを解決するために、Docker CLIのサブコマンドとしてComposeを統合し、docker compose という形になりました。

### **背景2：Python製からGo製への移行**

従来の docker-compose はPython製だったため、以下のような問題がありました。

-   環境によって依存関係の不整合が起きやすい
-   パフォーマンスの限界
-   Docker Desktopや他のツールとの統合が難しい

これを解消するため、Docker公式はGoで再実装されたCompose V2を開発し、2021年末から正式にリリースを始めました。

### **背景3：メンテナンス性と将来性**

Compose V2はDocker EngineやDocker Desktopに直接組み込まれているため、アップデートや保守の一元化が可能になります。

これにより、セキュリティや新機能対応も迅速に行えるようになります。

## まとめ

-   docker-compose は従来のPython製ツールで、現在は非推奨になっている
-   docker compose はDocker CLIに統合された新しいCompose（V2）で推奨されている
