このページで解説している内容は、以下の 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_PASSWORD | rootユーザーのパスワード |
| 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_on | wpdb(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-data | MariaDBのデータ保存領域(/var/lib/mysql) |
| wp-data | WordPressのデータ保存領域(/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の初期設定を行う手順を解説していきます。 🚀
