
【Docker基礎】定義ファイル(Composeファイル)の書式
Docker Compose で複数のコンテナやネットワーク、ボリュームを定義するときは、YAML 形式のファイルに記述しておきます。ファイル名は原則 docker-compose.yml
です(別名にしたい場合は -f
オプションで指定)。ここでは、YAML 形式で「どのように書くか」を中心に解説します。

1.定義ファイル(YAML形式)の基本
項目 | 内容 |
---|---|
形式 | YAML 形式 |
ファイル名 | docker-compose.yml |
- 拡張子は
*.yml
(または*.yaml
) - 「docker-compose.yml」と名付けるのがデフォルト(別名の場合は
docker compose -f
などで指定)
2.全体構成の書き方
Docker Compose の定義ファイルでは、以下のような 大項目 を書くのが一般的です。
version: "3" # Compose のバージョン
services: # コンテナの情報
networks: # ネットワークの情報
volumes: # ボリュームの情報
- version: Docker Compose のバージョン(ここでは 3 が例)
- services: 実際のコンテナ(サービス)について定義
- networks: 使いたいネットワークを定義(任意)
- volumes: 永続データ用ボリュームを定義(任意)
3.インデントと YAML のルール
YAML では、親子関係や複数要素を スペースの字下げ で表現します。
- インデントはスペース2つ または 4つ とする(タブは使用禁止)
- 一度決めたら、全体で揃える。
- キーと値は
:
(コロン)でつなぐ。 - コロンの後にはスペースを 1 個入れるのが基本
- 行末に
#
を付けると、以降その行はコメントとして扱われる。
3-1. 大項目の下に名前を記述
例:
version: "3"
services:
コンテナ名1:
image: イメージ名
networks:
- ネットワーク名1
コンテナ名2:
image: イメージ名2
networks:
ネットワーク名1:
volumes:
ボリューム名1:
ボリューム名2:
services:
の下に コンテナ名1、コンテナ名2 を並べるnetworks:
の下に ネットワーク名1 を定義volumes:
の下に ボリューム名1、ボリューム名2 を定義
4.サービスの設定記述例
コンテナ名の下にさらにスペースを下げて 設定項目 を書きます。複数の設定を リスト形式 で書く場合は、行頭に -
(ハイフン)を付けて並べます。
services:
myapp:
image: nginx:latest
ports:
- "8080:80"
networks:
- frontend
myapp
はサービス名(コンテナ名のようなもの)image:
で使用するイメージを指定ports:
は複数行のリスト(- "8080:80"
)networks:
もリスト形式
5.Docker Compose の書き方まとめ
- 最初にバージョン
version: "3"
- 大項目として
services:
networks:
volumes:
- キー: 値 の形式で設定
- 親子関係をスペースの字下げで表す
- 複数指定する場合は
-
を使う(リスト) - コメントは
#
- シングルクォート
' '
or ダブルクォート" "
で文字列を囲むことが多い
例:全体の基本構造
version: "3"
services:
web:
image: nginx:latest
ports:
- "8080:80"
networks:
- mynet
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
networks:
- mynet
networks:
mynet:
driver: bridge
volumes:
mydata:
6.使い方の流れ
docker-compose.yml
を作成docker compose up -d
→ 定義ファイルに従ってコンテナ、ネットワーク、ボリュームを一括作成・起動docker compose down
→ コンテナとネットワークを一括停止・削除(ボリュームやイメージは残る)
まとめ
- Docker Compose の定義ファイルは YAML 形式 (
docker-compose.yml
) - version や services, networks, volumes のような 大項目 を書き、それぞれの設定項目を インデントで階層化 して記述
- 書き方のルール(スペース、コロンの使い方、コメントなど)を守り、複数のコンテナ構成を分かりやすく管理 できるようにする
- 次のステップ: 実際に Compose ファイルを書き、コンテナを立ち上げてみましょう
次のコンテンツでは、Docker Compose の定義ファイルの主要項目(image
, build
, ports
, environment
, など)をさらに掘り下げて解説していきます。