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

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

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

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

docker-composeとdocker composeの違い

項目

docker-compose

docker compose

提供形式

独立した Python 製 CLI ツール

Docker CLI に統合されたサブコマンド

実行方法

docker-compose up

docker compose up

インストール

別途インストールが必要

Docker に標準で含まれる(v20.10.13〜)

バージョン

Compose V1

Compose V2(現行)

サポート状況

メンテナンスモード(非推奨)

公式推奨

パフォーマンス

標準的

より高速で安定(Go 製)

主な違いのポイント

  • 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)で推奨されている

Anycloudではプロダクト開発の支援を行っています

プロダクト開発をお考えの方はぜひAnycloudにご相談ください。

まずは相談する

記事を書いた人

そうま

エンジニア

そうま

Anycloudでエンジニアをしています。