2026年5月19日

2026年5月19日

docker-compose.ymlの書き方と基本設定

はじめに

Dockerは、アプリケーションとその依存関係を一括して管理できる仮想環境を提供します。docker-compose.ymlファイルを使用することで、複数のコンテナ化されたサービス間での相互作用を定義し、一括で起動・停止・管理することが可能になります。本記事では、Dockerコンテナ化されたWordPress環境を構築するためのdocker-compose.ymlファイルの基本的な書き方と設定方法について解説します。

症状・背景

docker-compose.ymlが必要になる主な場面は以下の通りです:

  • WordPressとMySQLなどのデータベースコンテナを一括で起動・停止する必要がある場合
  • ローカル環境とデプロイ先のサーバー間での設定の一貫性を確保したい場合
  • 複数のサービス間での相互作用を明確に定義したい場合

手順・設定方法

ステップ1: 環境準備

# DockerとDocker Composeがインストールされていることを確認します。
$ docker --version
$ docker-compose --version

ステップ2: docker-compose.ymlファイルの作成

# プロジェクトディレクトリを作成し、初期設定の`docker-compose.yml`ファイルを生成します。
$ mkdir my_wordpress_project
$ cd my_wordpress_project
$ docker-compose init

ステップ3: docker-compose.ymlファイルの編集

# WordPressとMySQLコンテナを定義するサンプルの`docker-compose.yml`ファイルを作成します。
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:

ステップ4: 環境変数の設定と起動

# 必要な環境変数を設定します。
$ export MYSQL_ROOT_PASSWORD=somewordpress
$ export WORDPRESS_DB_NAME=wordpress
$ export WORDPRESS_DB_USER=wordpress
$ export WORDPRESS_DB_PASSWORD=wordpress

# `docker-compose up`コマンドでコンテナを起動します。
$ docker-compose up -d

ステップ5: インライン設定の使用

# 環境変数を直接`docker-compose.yml`ファイルにインラインして定義することも可能です。
version: '3.8'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${WORDPRESS_DB_NAME}
      MYSQL_USER: ${WORDPRESS_DB_USER}
      MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD}

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: ${WORDPRESS_DB_USER}
      WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}

volumes:
  db_data:

注意事項

  • 環境変数の設定はセキュリティ上の観点から注意が必要です。
  • 複数のコンテナ間での相互作用を定義する際は、依存関係の設定が正しくなっていることを確認してください。
  • docker-compose downコマンドを使用してコンテナを停止することができます。

まとめ

1. docker-compose.ymlファイルの作成と編集: WordPressとMySQLコンテナを定義し、必要なオプションを設定します。

2. 環境変数の使用: 環境に応じて柔軟な設定を行うために、環境変数を活用します。

3. 起動と停止: docker-compose updownコマンドを使用してコンテナの管理を行います。

4. インライン設定: 環境変数を直接docker-compose.ymlファイルに埋め込むことも可能です。

5. 注意点: セキュリティと運用上の注意点を考慮に入れて、適切な設定を行うことが重要です。

関連記事:

お気軽にご相談ください

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