
【Docker基礎】Docker Composeとは
Docker で本格的に複数コンテナを扱うシステム(WordPress+DBサーバなど)を管理する場合、コンテナやネットワーク、ボリュームなどをすべてコマンドで作成・管理していると手間がかかります。そこで登場するのが Docker Compose というツールです。
Docker Compose を使うと、設定ファイル(YAML形式) に複数コンテナの構成やオプションを書いておけば、1 つのコマンドで一括して 「作成・起動」「停止・破棄」 などを行えるようになります。

1.Docker Compose とは?
- Docker コマンド群を定義ファイル(YAML)にまとめて実行できるツール
- 複数コンテナ(WordPress, MySQL など)の構築に役立ち、ネットワークやボリュームも一気に設定可能
- “up” コマンドでまとめて作成・起動、“down” コマンドでまとめて停止・削除ができる。
- 手動で何度もコマンドを打たなくても テキストファイル上で管理 できる。
2.なぜ Docker Compose が便利?
- 複数コンテナを扱うとコマンドが増える
・例: WordPress 用コンテナ、MySQL 用コンテナ、ネットワーク、ボリュームなど - 手動管理は煩雑
・docker run
コマンドを何度も入力、オプションも多様
・後片付け(停止・削除)もdocker ps
などで調べてからコマンドを複数回打つ。 - 定義ファイルで一元管理
・コマンド群を 1 つの YAML ファイルにまとめ、docker-compose up 1 回でセットアップ完了
・docker-compose down でまとめて停止・削除
3.例:WordPress + MySQL で考える
通常は以下のような複数コマンドが必要です。
docker run MySQLコンテナ
docker run WordPressコンテナ
docker network create wordpress_net
docker volume create wordpress_volume
...
しかし Docker Compose を使うと、定義ファイル(docker-compose.yml
)に以下をまとめて書けます。
services:
db:
image: mysql:5.7
...
wordpress:
image: wordpress
...
networks:
wordpress_net:
...
volumes:
wordpress_volume:
...
図:コマンド文は定義ファイルをまとめる
┌──────────────────────────────────┐
│ docker-compose.yml │
│ (WordPress + MySQL + net + vol) │
└──────────────────────────────────┘
| | |
v v v
WP container MySQL container Net/Volume
これを docker-compose up -d
のように一発で実行すると、
WordPressとMySQL、ネットワーク、ボリュームが一括作成され、起動します。
4.Docker Compose の仕組み

- 定義ファイル(
docker-compose.yml
) に
・コンテナで起動するサービス(どのイメージを使うか、ポートマッピング etc.)
・ネットワーク設定
・ボリューム設定
・環境変数や依存関係 - docker-compose up で「run」に相当する操作を一括実行
・イメージのダウンロード → コンテナ作成・起動 → ネットワーク生成 → ボリューム生成 - docker-compose down でコンテナとネットワークを停止・削除
・ボリュームとイメージは削除しない(削除方法の指定も可能) - docker-compose stop は停止のみで削除は行わない。
5.Dockerfile と Docker Compose の違い
- Dockerfile
・イメージを作るための手順書
・“コンテナ内部” の構成を定義 (FROM, RUN, COPY など) - Docker Compose
・複数コンテナの運用を定義するためのツール
・コンテナ同士の連携、ネットワーク、ボリューム管理を YAML で記述
まとめ
- Docker Compose は複数コンテナをまとめて管理するための便利ツール
- 定義ファイル(YAML) に設定を書いて、
up
やdown
で一括制御 - コマンドが増えて煩雑になってきたら、Compose への移行がおすすめ
- Dockerfile は「イメージの構築手順」、Docker Compose は「コンテナをどう組み合わせて動かすか」――それぞれ用途が違う
次のコンテンツでは、Docker Compose と Dockerfile の違いをさらに深掘りしながら、Compose の実践的な使い方を学んでいきましょう。