このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Docker超入門:開発環境コンテナ:WordPress+MySQL

開発環境コンテナ:WordPress+MySQL
今回は、Docker Compose を使って WordPress と MySQL のコンテナを構築し、
ローカルで手軽に WordPress 開発環境を作る方法を解説していきます。
この構成を覚えれば、ブログサイトやCMSサイトの試作がとてもスムーズになります!
💡 WordPressとは

WordPressは、世界中で最も使われているCMS(コンテンツ管理システム)です。
世界のウェブサイトの 約43% がWordPressで構築されており、
CMS全体では 63%以上のシェア を誇ります。
初心者でも簡単に操作でき、テーマやプラグインを追加することで
デザインや機能を自由に拡張できるのが最大の魅力です。
🧱 MySQLとは

MySQLは、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。
WordPressは投稿やユーザー情報など、すべてのデータをこのMySQLに保存します。
MySQLの特徴は次の通りです👇
| 特徴 | 内容 |
|---|---|
| 信頼性 | 世界中のWebアプリで利用される堅牢な設計 |
| 汎用性 | PHPやPythonなど主要言語と連携可能 |
| 高速性 | 大量データ処理にも強い |
| 拡張性 | ストレージエンジンやレプリケーション機能が豊富 |
MySQLはクライアント/サーバーモデルで動作し、
WordPress(クライアント)がMySQLサーバーに接続してデータをやり取りします。
⚙️ 作成するコンテナの構成
ここでは、以下の2つの公式イメージを使用します。
| コンテナ名 | 使用イメージ | 役割 |
|---|---|---|
| wpdb | mysql:8.0 | WordPressが利用するデータベース |
| wordpress | wordpress:6.5 | Webアプリ本体(PHP+Apache) |
両者をつなぐ設定は、Docker Composeのcompose.yaml ファイルで定義します。
WordPressコンテナがMySQLに接続するための環境変数を指定するのがポイントです。

🌍 WordPressの主な環境変数
| 環境変数 | 説明 |
|---|---|
| WORDPRESS_DB_HOST | 接続先データベースのホスト名(サービス名) |
| WORDPRESS_DB_NAME | 使用するデータベース名 |
| WORDPRESS_DB_USER | 接続ユーザー名 |
| WORDPRESS_DB_PASSWORD | 接続パスワード |
これらの値は、MySQL側で設定した情報と完全に一致している必要があります。
もしどれかが間違っていると、WordPressは起動時に「データベースに接続できません」と表示されます。
💾 MySQLの主な環境変数
| 環境変数 | 説明 |
|---|---|
| MYSQL_ROOT_PASSWORD | rootユーザーのパスワード |
| MYSQL_DATABASE | 自動作成する初期データベース名 |
| MYSQL_USER | 新規作成する一般ユーザー名 |
| MYSQL_PASSWORD | 一般ユーザーのパスワード |
これらの変数によって、MySQLの初期状態が構築されます。
WordPress側の環境変数と整合性を取ることで、接続がスムーズになります。
🧩 compose.yaml の定義
作業ディレクトリで VSCode を起動し、compose.yaml を以下のように作成します👇
services:
wpdb:
image: mysql:8.0
container_name: mysql_container
environment:
MYSQL_ROOT_PASSWORD: root-pass
MYSQL_DATABASE: database
MYSQL_USER: wp-user
MYSQL_PASSWORD: wp-pass
volumes:
- db-data:/var/lib/mysql
wordpress:
image: wordpress:6.5
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:/var/www/html
volumes:
db-data:🔍 定義内容のポイント
| 要素 | 内容 |
|---|---|
| wpdb | MySQLサービス(DBコンテナ) |
| wordpress | Webアプリサービス(WordPress本体) |
| depends_on | WordPress起動前にMySQLが起動するよう指定 |
| volumes | データを永続化(ホストとコンテナをマウント) |
| ports | ホストの80番ポートをWordPressの80番へ転送 |
⚙️ ボリュームの仕組み
このComposeでは、2種類のボリュームを利用しています。
| ボリューム名 | マウント先 | 説明 |
|---|---|---|
| db-data | /var/lib/mysql | MySQLのデータ格納先(永続化) |
| ./wp | /var/www/html | WordPressのファイルをホストと同期(テーマやプラグイン確認に便利) |
この設定によって、MySQLのデータやWordPressのサイト構成が削除されずに残ります。
🧹 まずはクリーンアップ!
まず、作業環境をクリーンに整えましょう。
古いコンテナや不要なボリュームがあると挙動が不安定になることがあります。
以下のコマンドを実行します👇
docker system prune -a --volumes| オプション | 説明 |
|---|---|
| -a | 使われていないすべてのイメージを削除します。 |
| --volumes | 使われていないボリュームも削除します。 |
実行結果
PS C:\Users\joeac> docker system prune -a --volumes
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all anonymous volumes not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] y📁 作業ディレクトリの作成
cd desktop/docker
mkdir wordpress4
cd wordpress4実行結果
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker> mkdir wordpress4
Directory: C:\Users\joeac\Desktop\docker
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2025/10/22 23:15 wordpress4
PS C:\Users\joeac\Desktop\docker> cd wordpress4
PS C:\Users\joeac\Desktop\docker\wordpress4>このように新しいディレクトリを作成してから compose.yaml を配置します。
VSCodeを起動する場合は次のように実行します👇
code compose.yaml「compose.yaml」を上記の内容にして保存します。
🚀 コンテナの作成と実行
準備ができたら、以下のコマンドでコンテナを一括起動します👇
docker compose up -d| オプション | 説明 |
|---|---|
| up | 定義ファイルに基づいてコンテナを起動 |
| -d | デタッチモード(バックグラウンドで実行) |
このコマンドを実行すると、WordPressとMySQLのイメージがDocker Hubから自動ダウンロードされます。
実行結果
PS C:\Users\joeac\Desktop\docker\wordpress4> docker compose up -d
[+] Running 34/34
(省略)
[+] Running 4/4
✔ Network wordpress4_default Created 0.1s
✔ Volume wordpress4_db-data Created 0.0s
✔ Container mysql_container Started 1.2s
✔ Container wordpress4-wordpress-1 St... 0.8s
PS C:\Users\joeac\Desktop\docker\wordpress4>この表示が出れば、2つのコンテナが正常に起動しています。
Docker Desktopでのコンテナ確認
「Containers」タブを確認します。一覧にあるコンテナを展開します。

MariaDBとWordPressの2つのコンテナが作成されて動作しているため、コンテナを示すアイコンが緑色になっています。

コンテナが、緑色になってない場合は、何らかの問題が発生しています。
「compose.yaml」の定義の間違いが疑わしいので、トラブルシューティングを行ってください。
🧱 コンテナの依存関係
compose.yaml の中で指定した depends_on によって、
WordPressコンテナはMySQL(wpdb)が起動してから立ち上がるように制御されます。
WordPressは起動時にデータベース接続を行うため、
この依存関係設定がないと「接続エラー」で失敗する場合があります。
依存関係は以下のように定義しています。
wordpress:
凵凵depends_on:
凵凵凵凵-凵wpdb
※「凵」は半角スペースを表しています。
🗂️ バインドマウントの確認
コンテナ起動後、wordpress4 ディレクトリを確認すると、
自動的に wp フォルダが作成されています。

この中には、WordPressの構成ファイル(wp-config.phpやindex.phpなど)が自動生成されています。
このバインドマウントのおかげで、VSCodeで直接WordPressテーマを編集できます。

🌐 WordPressにアクセスしてみよう
ブラウザを開いて次のURLを入力します👇
http://localhostWordPressの初期セットアップ画面が表示されます!

ここで「日本語」を選び、「次へ」ボタンを押すとセットアップが進みます。

以降はWordPressの画面上でサイト名や管理者アカウントを設定するだけでOKです。
✅ まとめ
| ステップ | コマンド | 内容 |
|---|---|---|
| 不要オブジェクト削除 | docker system prune -a | 古い環境をリセット |
| ディレクトリ作成 | mkdir wordpress4 | 作業用フォルダを作成 |
| 編集 | code compose.yaml | Compose定義を作成 |
| 起動 | docker compose up -d | コンテナを起動 |
| 動作確認 | ブラウザで localhost にアクセス | WordPressセットアップ画面を確認 |
💬 ひとことまとめ
Docker Composeを使えば、WordPressとMySQLをわずか1つのファイルで簡単に連携できます。
開発環境でも本番でも、この構成を理解しておくと応用が効きますよ!
