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 コマンドを使用してサービスを起動し、必要に応じて監視を行います。

関連記事:

お気軽にご相談ください

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