2026年5月19日

2026年5月19日

docker-composeでマルチコンテナを起動する方法

はじめに

Dockerはアプリケーションを単なるコードから実行環境まで完全に包み込む技術で、その上で複数のコンテナを管理するためのdocker-composeを利用すると、一連の手順をYAMLファイルに記述することで、簡単に複数のコンテナを起動・停止することができます。これにより、開発者や運用者が効率的にサービスを展開することが可能となります。

症状・背景

このテーマが必要になる主な場面は以下の通りです:

  • デベロッパーがウェブアプリケーションの複数のコンポーネント(例:Webサーバ、データベース)を管理する必要があるとき
  • サービス間の依存関係や環境設定が複雑な場合
  • 一連の手順を明確にし、再現性を確保したいとき

手順・設定方法

ステップ1: docker-compose.ymlファイルを作成する

# docker-compose.ymlを作成します。この例では、NginxとMySQLを組み合わせることを考えます。
touch docker-compose.yml

ステップ2: docker-compose.ymlファイルに基本的な設定を追加する

# NginxコンテナとMySQLコンテナの設定を記述します。
cat <<EOF >docker-compose.yml
version: '3.8'

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

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: testdb

ステップ3: 必要なファイルを準備する

# Nginxの設定ファイルとHTMLディレクトリを作成します。
mkdir -p nginx/conf.d html
echo "Hello, Docker Compose!" >html/index.html

ステップ4: docker-composeを起動し、停止する

# docker-compose upでコンテナを起動します。-dオプションを使用するとバックグラウンドで実行します。
docker-compose up -d

# docker-compose downでコンテナを一括で停止します。
docker-compose down

注意事項

  • docker-compose.ymlのファイル名は必ずdocker-compose.ymlとし、同じディレクトリに保存することを忘れないでください。
  • 容量の大きいデータを含む場合は、ボリュームとしてマウントすることで、コンテナ間での共有が可能となります。
  • 起動するコンテナは必ずサービスセクションに記述し、必要な設定を追加してください。

まとめ

1. docker-compose.ymlの作成: docker-compose.ymlファイルを作成し、必要に応じてコンテナの設定を行うことが重要です。

2. YAMLファイルの構造: versionとservicesセクションが必須であり、それぞれのサービスにはイメージやポートマッピングなどの設定が必要です。

3. docker-compose up/down: docker-composeを用いて一括で起動・停止することにより、開発者や運用者の作業負荷が軽減されます。

4. ボリューム管理: 必要に応じてボリュームをマウントし、コンテナ間でのデータ共有を行ってください。

5. セキュリティ上の注意: パスワードやその他の機密情報をdocker-compose.ymlファイルに直接記述しないようにしましょう。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ