Docker Compose入門|複数コンテナをまとめて管理する方法

はじめに

Dockerを使い始めると、次のような悩みに直面します。

  • Webサーバーとアプリを別コンテナで動かしたい
  • docker run コマンドが増えて管理が大変
  • 開発環境を簡単に再現したい

そんな課題を解決するのが Docker Compose です。

本記事では、

  • Docker Composeとは何か
  • Dockerとの違い
  • docker-compose.ymlの基本構造
  • Web + アプリを立ち上げるハンズオン

初心者向けにわかりやすく解説します。

対象読者

  • Dockerを触り始めた初心者
  • 複数コンテナ管理に困っている人
  • Docker Composeの使い方を体系的に学びたい人

Docker Composeとは?

Docker Compose は、複数のDockerコンテナを1つの設定ファイルで管理するツールです。

通常、複数のコンテナを起動する場合は以下のようになります。

docker run ...
docker run ...
docker run ...

Docker Composeを使えば、これらを 1コマンドで起動・停止できます。

docker compose up

Docker Composeを使うメリット

Docker Composeを導入する主なメリットは以下です。

  • 複数コンテナをまとめて管理できる
  • 環境構築手順をコード化できる
  • チームで同一環境を簡単に共有できる
  • 本番環境・検証環境の再現性が高い

特に ローカル開発環境技術ブログのハンズオン では非常に相性が良いツールです。


DockerとDocker Composeの違い

初心者が混乱しやすいポイントを整理します。

項目DockerDocker Compose
管理単位コンテナ単体複数コンテナ
設定方法コマンドYAMLファイル
起動docker rundocker compose up
用途単体実行システム全体管理

docker-compose.ymlの基本構造

Docker Composeでは、docker-compose.yml にすべてを記述します。

version: "3.9"
services:
  web:
    image: nginx
    ports:
      - "8080:80"

よく使うキー

  • services:起動するコンテナ定義
  • image:使用するDockerイメージ
  • build:Dockerfileからビルド
  • ports:ポートフォワーディング
  • volumes:ファイル共有

【ハンズオン】Docker ComposeでWebアプリ環境を作る

ここからは実際に Docker Composeを使ったハンズオン を行います。
Nginx + Webアプリ(HTML) の構成を作ってみましょう。


事前準備

以下がインストールされていることを確認してください。

  • Docker Desktop(Docker Compose含む)
docker compose version

① プロジェクト構成を作成

mkdir docker-compose-sample
cd docker-compose-sample
docker-compose-sample/
├─ docker-compose.yml
└─ html/
   └─ index.html

② HTMLファイルを作成

html/index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Docker Compose 入門</title>
</head>
<body>
  <h1>Hello Docker Compose!</h1>
  <p>Docker Compose ハンズオン成功 🎉</p>
</body>
</html>

③ docker-compose.ymlを作成

version: "3.9"

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html

設定の解説

  • image:Nginx公式イメージを利用
  • ports:ローカル8080 → コンテナ80
  • volumes:HTMLをリアルタイム反映

④ コンテナを起動

docker compose up -d

⑤ ブラウザで確認

ブラウザで以下にアクセスします。

http://localhost:8080

「Hello Docker Compose!」と表示されれば成功です。


⑥ コンテナを停止

docker compose down

よく使うDocker Composeコマンド

docker compose up -d      # 起動
docker compose down       # 停止
docker compose ps         # 状態確認
docker compose logs       # ログ確認

よくあるトラブルと対処法

ポートが競合する場合

lsof -i :8080

別ポートに変更することで解決できます。


Docker Composeが活躍する場面

  • ローカル開発環境
  • 技術ブログの検証環境
  • CI/CDのテスト環境
  • 小規模〜中規模システム

まとめ

Docker Composeを使うことで、

  • 複数コンテナ管理が圧倒的に楽になる
  • 開発環境の再現性が向上する
  • docker run地獄から解放される

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です