0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Docker初心者向け】Docker Compose入門

0
Last updated at Posted at 2026-02-18

はじめに

本記事は、Docker Composeの基本的な考え方から、実際の環境構築手順、よく使うコマンドまでを整理してまとめてみたになります!

これからDocker Composeを触る方の参考になれば嬉しいです!

Docker自体の基礎を確認したい方へ
コンテナの概念やインストール方法など、Dockerの基本については以下の記事で解説しました。必要に応じてあわせてご参照ください。
👉 【Docker初心者向け】UbuntuでDockerを扱う

Docker Composeとは?

Docker Composeは、複数のコンテナを定義し、一度にまとめて実行・管理するツールになります。

基本的に、Dockerが標準で搭載している、Docker Engineでは、それぞれに対して起動コマンドを入力する必要があります。

Docker Composeを使えば、設定ファイル(compose.yaml)に構成を書くことで、複数のコンテナを一括で操作できるようになります。

Docker と Docker Composeの違い

両者の違いを整理すると以下のようになります。

項目 Docker (単体) Docker Compose
役割 コンテナを動かす基盤 複数のコンテナを一括管理するツール
操作対象 基本的にコンテナを1つずつ操作 複数のコンテナを一度に操作
設定方法 実行時、コマンドごとに引数を指定 compose.yaml ファイルに設定をまとめる
活用シーン 単体のコンテナを試作・検証する際 WebとDBを連携させるなど、システムを作る際

Docker Composeを使う3つのメリット

1. 管理・実行の効率化

個別に長いコマンドを入力する必要がなくなります。設定ファイル(YAML)に構成を記述しておくことで、次回からはコマンド一つで全く同じ環境を再現できます。

2. 運用ミスの削減

手動でオプションを指定して実行すると、打ち間違いや設定漏れが発生するリスクがあります。設定内容をファイルとして管理することで、作業手順が固定化され、ヒューマンエラーを未然に防ぐことができます。

3. コンテナ間の通信設定が容易になる

Docker Composeは起動時に専用のネットワークを自動で作成します。同じプロジェクト内のコンテナ同士は「コンテナ名」を指定するだけで通信が可能になり、IPアドレスを意識する手間が省けます。

ハンズオン:Webサーバー構築

実際にDocker Composeを使って、簡単なWebサーバー(Nginx)を立ち上げてみましょう。

手順1:フォルダの作成

まずわかりやすい名前のフォルダを一つ作ってください。
ここでは、my-web-serverとします。

手順2:表示させるページを作る

作成したフォルダの中に、お好みのテキストエディタで index.html というファイルを作成し、以下の内容を保存してください。

index.html
<h1>ようこそ</h1>
<p>これはDocker Composeで動かしている、Webサイトです。</p>

手順3:設定ファイルを作る(compose.yaml)

同じフォルダの中に、compose.yaml というファイルを作ります。

以下の内容をコピーしてください。

インデント(行頭のスペース)がずれるとエラーになります。

compose.yaml
services:
  web:
    image: nginx # Nginx(Webサーバー)のイメージを使います
    ports:
      - "8080:80"
    volumes:
      - ./index.html:/usr/share/nginx/html/index.html 

ここまでの作業で、フォルダ構成は以下のようになっているはずです。

my-web-server/
├── compose.yaml
└── index.html

手順4:起動コマンドを実行する

ターミナルを開き、作成したフォルダへ移動します。

cd Desktop/my-web-server
# ※パスはご自身の環境に合わせて変更してください

以下のコマンドを実行して起動します。

docker compose up -d

初回はイメージのダウンロードが入るので少し時間がかかります。
StartedRunning と表示されれば成功です。

手順5:ブラウザで確認する

ブラウザ(ChromeやSafariなど)を開き、以下のアドレスにアクセスしてください。

👉 http://localhost:8080

「ようこそ」というメッセージが表示されていれば成功です!

VS Codeの機能を使って確認する場合

VS Codeをお使いの場合は、以下の手順でも確認できます。

  1. VS Codeのターミナルを開き、上部のタブから「ポート」をクリック
  2. ポート一覧にある「ポートの転送」をクリックし、「8080」と入力
  3. 地球のマーク(ブラウザで開く)をクリック

コンテナの停止・削除

動作確認ができたら、コンテナを停止して削除しましょう。
compose.yaml があるディレクトリで以下のコマンドを実行します。

docker compose down

解説:何が起きたのか?

通常のDockerコマンドだと、以下のような長いコマンドを打つ必要があります。

docker run -d -p 8080:80 -v $(pwd)/index.html:/usr/share/nginx/html/index.html nginx

Docker Composeを使うことで、compose.yaml に「Webサーバーを使って」「ポートは8080で」「このファイルを表示して」という設計図を書いたため、docker compose up -d という短い合図だけでその通りに動いてくれました。


Docker Compose基本コマンドまとめ

よく使うコマンドをまとめました。

コマンド 説明
docker compose up -d コンテナを作成してバックグラウンドで起動する
docker compose down コンテナとネットワークを停止・削除する
docker compose start 停止しているコンテナを再開する
docker compose stop コンテナを一時停止する(削除はしない)
docker compose ps 現在動いているコンテナ一覧を表示する
docker compose logs コンテナのログを表示する(-fでリアルタイム表示)

補足:よく使うオプションやコマンド

バックグラウンド実行 (-d)

up コマンドには基本的に -d オプションを付けます。

こちらのオプションをつけない場合は、フォアグラウンドで実行され、ターミナルにログが流れ続けます。

エラーの原因調査など、ログをリアルタイムで確認しながら進めたい場合はこちらが便利です。その際は操作用に別のターミナルを開いてください。

設定確認 (config)

docker compose config

compose.yaml の記述ミスがないか確認したい時に便利です。

コンテナ内に入る (exec)

docker compose exec web bash
# "web"の部分はyamlで定義したサービス名

起動中のコンテナの中に入って操作(DB接続確認など)を行いたい時に使います。

まとめ

Docker Composeを使うと、複雑なコマンドを覚える必要がなくなり、設定ファイル一つで誰でも同じ環境を再現できるようになります。

もっと色々機能があるので、ぜひご自身でも色々試してみてください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?