
Docker超入門:Docker Composeの定義方法:ファイル作成からコンテナ実行までの手順
Docker Composeは、複数のコンテナをまとめて定義・起動・管理 できる便利なツールです。
通常の docker run コマンドでは、コンテナごとに長いオプションを打ち込む必要がありますが、Composeを使えば たった1つの設定ファイル(compose.yaml) にまとめて記述できるんです。
ここでは、「Docker Composeファイルの作成からコンテナの実行まで」 の流れを、わかりやすくステップ形式で紹介していきます。

手順1:作成するコンテナの定義に必要な情報を整理する
まずは、どんなコンテナを作るのか整理しましょう。
Composeファイルでは、次のような情報を定義します。
| 項目 | 説明 |
|---|---|
| イメージ名 | どのDockerイメージを使うか(例:nginx、mysql、redisなど) |
| ポートマッピング | ホストとコンテナ間のポートの対応(例:80:80) |
| ボリューム | 永続化したいデータの保存場所(例:dbdata:/var/lib/mysql) |
| 環境変数 | コンテナ内で使用する設定値(例:MYSQL_ROOT_PASSWORDなど) |
| ネットワーク設定 | コンテナ間通信の設定(例:同一ネットワーク内で連携) |
この整理をしておくことで、後からYAMLファイルを書くときにスムーズに定義できます。
💡 ポイント
もし複数のコンテナを連携させるなら、
「どのコンテナがどのサービスに依存しているか」も考慮しておきましょう。
手順2:Docker Composeファイルを作成する
次に、整理した情報をもとにComposeファイルを作成します。
ファイル名は一般的に次のどちらかです。
docker-compose.yml(従来の形式)docker-compose.yaml(現在の推奨形式)
たとえば、NginxとMySQLを一緒に起動する例はこんな感じ👇
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: sampledbこのファイルでは、
- webサービス:Nginxのイメージを使用してポート8080を公開
- dbサービス:MySQLを使用してデータベースを作成
という2つのコンテナをまとめて定義しています。
| 要素 | 説明 |
|---|---|
| version | Composeファイルのバージョン(例:3.8)を指定 |
| services | 管理するコンテナ群をまとめるセクション |
| web / db | 各コンテナのサービス名。任意でOK |
| image | 使用するDockerイメージを指定 |
| ports | ホストとコンテナのポートマッピング |
| environment | 環境変数を定義してアプリ設定を行う |
もし独自のアプリをビルドしたい場合は、image: の代わりに build: を使い、
同ディレクトリ内の Dockerfile を参照するように設定します。
手順3:コンテナを作成・実行する
Composeファイルを作成したら、いよいよ実行です!
ターミナルまたはコマンドプロンプトでファイルのあるディレクトリに移動して、
次のコマンドを入力します。
docker compose up -d
| コマンド | 説明 |
|---|---|
| docker compose up | Composeファイルに定義された全コンテナを起動 |
| -d | デタッチドモード(バックグラウンド実行)で起動 |
実行すると、Composeファイルに書かれたすべてのコンテナが一括で作成・起動されます。
もし構成を変更したら、同じコマンドを再実行すれば自動で更新されます。
コンテナの状態を確認したいときは👇
docker compose psすべて停止・削除したい場合は👇
docker compose down| コマンド | 説明 |
|---|---|
| docker compose ps | 起動中のサービスを一覧表示する。 |
| docker compose down | 起動したサービスとネットワークを停止・削除する。 |
図解でイメージする!

まとめ
Docker Composeを使うと、
複数のコンテナを1つのYAMLファイルで管理できる のでとても便利です。
ポイントをおさらいすると…
- まずは必要なコンテナ構成を整理する。
- compose.yamlファイルを作成して、各サービスをYAMLで定義する。
docker compose up -dコマンドで一括起動!
これで、Webサーバー・DB・APIサーバーなどをまとめて管理できるようになります。
