
Docker超入門:複数コンテナの起動・停止・管理を1コマンドで!Docker Compose解説
Dockerを使っていると、単体のコンテナを動かすだけじゃなくて、Webサーバー+DB+キャッシュ みたいに複数のコンテナを連携させたい場面が多く出てきます。
でも、1個ずつ docker run で起動して設定して…なんてやってたら面倒ですよね。
そこで登場するのが Docker Compose!
これを使えば、YAMLファイルにまとめて設定を書いて、1コマンドで複数コンテナを起動・停止・管理 できちゃいます。

Docker Composeファイルの作成
プロジェクトのルートディレクトリに docker-compose.yml を作ります。
このYAMLファイルの中に、複数のコンテナを「サービス」として定義していきます。
例として、Nginx+MariaDB のシンプルな構成を見てみましょう。
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mariadb:latest
environment:
- MARIADB_ROOT_PASSWORD=rootpass
- MARIADB_DATABASE=sampledb
- MARIADB_USER=sampleuser
- MARIADB_PASSWORD=passwordこの設定だけで「Webサーバー(Nginx)」と「DBサーバー(MariaDB)」を同時に管理できます。
Docker Composeの主要コマンド
Composeを使うと、長い docker run の代わりに短いコマンドでまとめて操作できるようになります。
| コマンド | 説明 |
|---|---|
| docker compose up | docker-compose.yml に定義されたサービスをまとめて起動 |
| docker compose down | 起動したサービスを停止し、関連リソースを削除 |
| docker compose ps | 起動中のサービスの状態を確認 |
| docker compose logs | サービスのログを表示 |
| docker compose exec | 実行中のコンテナ内でコマンドを実行 |
| docker compose build | 定義されたイメージをビルド |
例えば、YAMLファイルに上記のサービスを書いておけば、
docker compose up -dと打つだけで NginxとMariaDBがまとめて起動 します。便利すぎますね。
共通環境の一貫性
Composeの良いところは「環境の再現性」。
YAMLファイルさえ共有すれば、誰でも同じ環境を再現できます。
- チーム開発 → 開発者全員が同じ環境で作業できる
- 本番環境やテスト環境 → Composeファイルを使い回せば設定のブレがなくなる
スケーラビリティとリソース管理
- サービスのレプリカ数を増やすだけでスケールアウトできる。
- 各サービスごとにCPUやメモリ制限を設定可能
- ネットワークも自動管理してくれるので、サービス同士の通信設定もシンプル
例えば、Webサーバーを3台にスケールさせたいなら
docker compose up --scale web=3 -dとするだけです。
まとめ
- 複数のコンテナを1つのYAMLファイルでまとめられる。
- 起動・停止・ログ確認・スケーリングなどを1コマンドで管理できる。
- チームや環境間での共有がしやすく、再現性もバッチリ
Docker Composeを使えば、煩雑だった複数コンテナ管理が一気にスマートになります!
