このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:Docker ComposeでWordPress+MariaDBコンテナを構築する方法①

Docker ComposeでWordPress+MariaDBコンテナを構築する方法①

 ここでは、Docker Composeコマンドを使ってWordPressとMariaDBコンテナを構築する方法を解説していきます。
 WordPressは世界中で最も人気のあるCMS(コンテンツ管理システム)であり、Docker Composeを使えば、Webサーバー(WordPress)とデータベース(MariaDB)の連携環境を簡単に構築できます。

 本記事は2部構成のうちの「①」であり、ここではComposeファイルの定義内容と構成の理解を中心に進めます。

「Wordpressコンテナの構築」は次の2部に分けて解説していきます。

WordPressとは

 WordPressは、世界中のWebサイトの約43%が利用している、最も普及しているCMS(コンテンツ管理システム)です。
 CMSの中でのシェアは約63.7%にも達しており、個人ブログから企業サイト、ECサイトまで幅広く使われています。
(参考:BootCamp調査

WordPressの人気の理由は、以下の点にあります。

  • 操作が簡単:初心者でもWebサイトをすぐに立ち上げられる。
  • 拡張性が高い:テーマやプラグインでデザインや機能を自由に追加できる。
  • コミュニティが活発:世界中に開発者がいて、情報が豊富。

WordPressコンテナを使用するメリット

Docker上でWordPressを構築することで、開発・運用が非常にスムーズになります。
主なメリットは次のとおりです。

メリット説明
環境の分離開発環境と本番環境を独立して運用できるため、安全にテスト可能。
再現性の確保Composeファイルを共有すれば、他の開発者が同じ環境を簡単に構築可能。
安定性の向上MariaDBとWordPressを分離構築することで、個別の更新やテストが容易。

 特に開発チームで作業を行う場合、コンテナ化されたWordPressは環境差異のトラブルを解消してくれる強力なツールです。

作成するコンテナの構成

WordPressはデータ保存にMySQL系のデータベースを使用します。
ここでは、軽量で高互換なMariaDBを利用します。

 この2つをDocker Composeでまとめることで、WordPress ↔ MariaDB 間の接続設定やデータ永続化を一元的に管理できます。

WordPressの主な環境変数

WordPressコンテナでは、データベース接続情報を環境変数で指定します。

環境変数説明
WORDPRESS_DB_HOST接続するデータベースのホスト名(MariaDBサービス名)
WORDPRESS_DB_NAME使用するデータベース名
WORDPRESS_DB_USER接続時に使用するデータベースユーザー名
WORDPRESS_DB_PASSWORD上記ユーザーのパスワード

これらを正確に設定することで、WordPressがMariaDBに接続し、正しく動作します。

MariaDBの主な環境変数

MariaDBコンテナでも、環境変数を使って初期設定を行います。

環境変数説明
MARIADB_ROOT_PASSWORDrootユーザーのパスワード
MARIADB_DATABASE初期作成されるデータベース名
MARIADB_USER新規ユーザー名
MARIADB_PASSWORD新規ユーザーのパスワード

これらの環境変数によって、MariaDBの初期構成が自動的に設定されます。

compose.yaml の定義

以下が、WordPress+MariaDBを構築するためのcompose.yamlファイルの全体定義です。

services:
  wpdb:
    image: mariadb:10.8
    environment:
      MARIADB_ROOT_PASSWORD: root-pass
      MARIADB_DATABASE: database
      MARIADB_USER: wp-user
      MARIADB_PASSWORD: wp-pass
    volumes:
      - db-data:/var/lib/mysql

  wordpress:
    image: wordpress:6.8
    depends_on:
      - wpdb
    environment:
      WORDPRESS_DB_HOST: wpdb
      WORDPRESS_DB_NAME: database
      WORDPRESS_DB_USER: wp-user
      WORDPRESS_DB_PASSWORD: wp-pass
    ports:
      - "80:80"    
    volumes:
      - wp-data:/var/www/html

volumes:
  db-data:
  wp-data:

定義内容の解説

wpdbサービス(MariaDB)

項目内容
サービス名wpdb
イメージmariadb:10.8
環境変数MARIADB_ROOT_PASSWORD
MARIADB_DATABASE
MARIADB_USER
MARIADB_PASSWORD
ボリュームdb-data:/var/lib/mysql

このサービスはMariaDBデータベースを構築します。
ボリュームを使って、データを永続的に保存します。

wordpressサービス(WordPress)

項目内容
サービス名wordpress
イメージwordpress:6.8
depends_onwpdb(MariaDBに依存)
環境変数WORDPRESS_DB_HOST
WORDPRESS_DB_NAME
WORDPRESS_DB_USER
WORDPRESS_DB_PASSWORD
ポート"80:80"(ホストの80番をコンテナの80番にマッピング)
ボリュームwp-data:/var/www/html

このサービスがWebアプリケーションとしてのWordPressを構築します。
MariaDBに依存しており、depends_on によって起動順序が制御されます。

WordPressはMariaDBへの接続情報をもとに自動で初期設定を行います。

ボリュームの定義

ボリューム名説明
db-dataMariaDBのデータ保存領域(/var/lib/mysql)
wp-dataWordPressのデータ保存領域(/var/www/html)

このボリューム設定により、コンテナを削除してもデータは保持されます。
WordPressのテーマや設定、記事データを失わずに管理できます。

依存関係の定義

Composeファイルでは、WordPressがMariaDBの起動を待つように指定します。

wordpress:
凵凵depends_on:
凵凵凵凵-wpdb

※「凵」は半角スペースを表しています。

 これにより、MariaDBが起動してからWordPressコンテナが立ち上がるため、接続エラーを防止できます。

 この設定がない場合、WordPressがデータベース起動前に接続を試み、初期化に失敗することがあります。

WordPressはデータベースに接続しないと使用できません。

イラストで理解する:WordPress+MariaDB構成図

まとめ

  • WordPress+MariaDB をDocker Composeで構築
  • compose.yaml でサービス・環境変数・依存関係を明確に定義
  • ボリューム設定 によりデータを永続化

 次回の「Docker ComposeでWordPress+MariaDBコンテナを構築する方法②」では、実際にこのComposeファイルを使ってコンテナを起動し、
ブラウザでWordPressの初期設定を行う手順を解説していきます。 🚀