2026年8月12日
2026年8月12日
docker-composeのネットワーク設定を詳しく解説
はじめに
docker-composeは、複数のコンテナ間で共有または隔離したネットワークを設定し、互いに通信するための非常に便利なツールです。特に、WordPressなどのWebアプリケーション開発やテスト環境構築において、適切なネットワーク設定を行うことは重要です。
症状・背景
docker-composeが必要になる主な場面は以下の通りです:
- 多機能なウェブアプリケーション(例:Wordpress + MySQL)のコンテナ間通信を効果的に管理する。
- 安全性とプライバシーを確保しながら、コンテナ間でサービスを共有したい場合。
- ローカル環境やテスト環境を迅速に構築し、再現可能にする必要がある。
手順・設定方法
ステップ1: Docker Composeファイルを作成する
# ファイル名をdocker-compose.ymlとして作成し、基本的な構造とネットワーク設定を行います。
# ここでは基本的なWordPressとMySQLのコンテナ間通信に焦点を当てます。
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
networks:
default:
driver: bridge
ステップ2: 主要オプション/設定
# MySQLサービスを作成し、データを持久化するためのボリュームを定義します。
# WordPressサービスはMySQLに接続するために必要な環境変数を設定しています。
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
networks:
default:
driver: bridge
ステップ3: 应用/組み合わせ
# ネットワークドライバーを指定して、より複雑なネットワーク構成を作成します。
# カスタムネットワークを使用することで、コンテナ間の通信ルートを制御できます。
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
networks:
custom_net:
driver: bridge
services:
db:
networks:
- custom_net
wordpress:
networks:
- custom_net
ステップ4: 実践/トラブルシュート/監視
# ネットワーク設定が正しく機能しているかを確認します。
# docker-compose upでサービスを起動し、WordPressとMySQLの接続性を検証します。
docker-compose up -d
注意事項
- Docker Composeのネットワーク設定は、コンテナ間での通信を効率化しますが、セキュリティ上の考慮点もあります。
- ネットワークドライバーやIPアドレスの指定は、ネットワーク環境によって適切なものを選択する必要があります。
- 環境変数やサービス名は、プロジェクトの要件に合わせて調整してください。
まとめ
1. docker-compose.ymlファイル: Docker Compose用の設定ファイルを作成します。ここではMySQLとWordPressを含む基本的なコンテナ間ネットワーク構築方法を示しました。
2. ボリュームの使用: データを持久化するためにボリュームを設定します。これはデータの失われを防ぐための重要なステップです。
3. カスタムネットワーク: 複数のサービス間で共有するネットワークを作成します。これにより、コンテナ間での通信が容易になります。
4. 環境変数: マイグレーションとデータベース接続のために必要な設定を適切に指定します。
5. 起動と監視: docker-compose up コマンドを使用してサービスを起動し、必要に応じて監視を行います。
関連記事: