【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:          # ボリュームの情報
  1. version: Docker Compose のバージョン(ここでは 3 が例)
  2. services: 実際のコンテナ(サービス)について定義
  3. networks: 使いたいネットワークを定義(任意)
  4. 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 の書き方まとめ

  1. 最初にバージョン version: "3"
  2. 大項目として services: networks: volumes:
  3. キー: 値 の形式で設定
  4. 親子関係をスペースの字下げで表す
  5. 複数指定する場合は - を使う(リスト)
  6. コメントは #
  7. シングルクォート ' ' 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.使い方の流れ

  1. docker-compose.yml を作成
  2. docker compose up -d → 定義ファイルに従ってコンテナ、ネットワーク、ボリュームを一括作成・起動
  3. docker compose down → コンテナとネットワークを一括停止・削除(ボリュームやイメージは残る)

まとめ

  • Docker Compose の定義ファイルは YAML 形式 (docker-compose.yml)
  • versionservices, networks, volumes のような 大項目 を書き、それぞれの設定項目を インデントで階層化 して記述
  • 書き方のルール(スペース、コロンの使い方、コメントなど)を守り、複数のコンテナ構成を分かりやすく管理 できるようにする
  • 次のステップ: 実際に Compose ファイルを書き、コンテナを立ち上げてみましょう

 次のコンテンツでは、Docker Compose の定義ファイルの主要項目image, build, ports, environment, など)をさらに掘り下げて解説していきます。