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ファイルに直接記述しないようにしましょう。
関連記事: