
Docker超入門:Docker Compose必須知識!YAMLの書き方と実践ポイント
Docker Composeを使いこなすうえで欠かせないのが、「YAMLファイル(compose.yaml)」 の理解です。
複数のコンテナをまとめて管理したいとき、長いDockerコマンドを毎回入力するのは面倒ですよね。
そこで活躍するのがYAML形式の設定ファイル。
1つのcompose.yamlファイルにすべての設定をまとめておけば、1コマンドで環境全体を起動・停止できるようになります。
ここでは、実際の例を交えながらDocker ComposeでのYAMLの書き方とポイントを、やさしく解説していきます。

YAMLでコンテナを管理する仕組み
Docker Composeでは、複数コンテナの設定をYAML形式のファイルで定義します。
このファイルは、コンテナ名、イメージ、ポート、環境変数などをわかりやすく整理できるようになっており、
複数のコマンド入力を一度に済ませられる便利な仕組みです。
たとえば、次のような compose.yaml ファイルを考えてみましょう。
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: exampleこの設定では、NginxコンテナとMySQLコンテナの2つをまとめて起動できます。
各要素の意味を理解しよう
YAMLファイルの各行には、しっかりと意味があります。以下の表で整理してみましょう👇
| 要素 | 説明 |
|---|---|
| version | 使用するDocker Composeファイルのバージョンを指定。ここでは3.8を使用。 |
| services | コンテナ(サービス)をまとめるセクション。すべてのサービス設定はこの中に書く。 |
| web | サービスの名前。ここではNginxのコンテナを「web」という名前で管理。 |
| image | 使用するDockerイメージを指定。ここではnginx:latestを指定。 |
| ports | ホストのポートとコンテナのポートをマッピング(例: "80:80")。 |
| db | MySQLコンテナを定義するサービスの名前。 |
| environment | 環境変数を定義。ここではMySQLのrootパスワードを設定している。 |
YAMLの構造はインデント(字下げ)で階層を表すのが特徴です。
この階層構造によって、設定内容がひと目で理解しやすくなっています。
YAMLファイルの拡張子について
YAMLファイルは、一般的に .yaml または .yml の拡張子を使います。
どちらを使っても構いませんが、現在は公式的に .yaml が推奨 されています。
たとえば、
compose.yaml(推奨)docker-compose.yml(従来形式でもOK)
両方とも機能は同じです。既存のプロジェクトでは「.yml」形式もよく見かけますね。
Apacheコンテナを作成する例
もうひとつ別の例として、Apache HTTP ServerをDocker Composeで定義してみましょう。
version: '3.8'
services:
apache:
image: httpd:latest
ports:
- "80:80"このファイルを使えば、Apacheサーバーのコンテナを一発で起動できます。
それぞれの項目をもう少し詳しく見てみましょう。
| 要素 | 説明 |
|---|---|
| version | Docker Composeファイルのバージョン指定。ここでは3.8を使用。 |
| services | 定義するサービスのセクション開始。 |
| apache | サービスの名前。ここではApacheサーバーを定義。 |
| image | 使用するDockerイメージ。httpdの最新バージョンを利用。 |
| ports | ホストのポート80をコンテナのポート80にマッピング。 |
この設定でDocker Composeを起動すると、
ブラウザから http://localhost にアクセスするだけでApacheの初期画面が表示されます。
YAMLを使うメリット
YAMLファイルを使う最大のメリットは、「設定の一元管理」 です。
複数のオプションを長いDockerコマンドで書く代わりに、
YAMLにまとめておけば、以下のようにスッキリ管理できます。
| 従来の方法 | Docker Composeの方法 |
|---|---|
| docker run -d -p 80:80 nginx | YAMLファイルに設定を記述し、docker compose upで起動 |
| 複数コンテナを個別にrunコマンドで管理 | すべてをservicesセクションにまとめて管理 |
| 手動で環境変数・ボリュームを指定 | YAML内で一括設定し再利用可能 |
この仕組みがあるおかげで、環境構築がシンプルかつ再現性の高いものになります。
まとめ
YAMLファイルは、Docker Composeの中核となる設定ファイルです。
Nginx、MySQL、Apacheなどの複数コンテナを1つのファイルで管理できる ため、
コマンド入力の手間を減らし、設定の見通しも抜群に良くなります。
覚えておくべきポイントは次の3つ👇
- インデントで階層を表す(スペース2つまたは4つで統一!)
.yamlor.ymlの拡張子を使う(どちらでもOK)- 複数コンテナをまとめて起動・停止できる(
docker compose up / down)
これをマスターすれば、Docker Composeを使った開発環境構築がぐっと楽になります!
