はじめに:DockerでWordPress環境を構築するメリットとは?
こんにちは、インターライフメディアです。Webサイト制作や運営に携わる皆さんにとって、ローカル環境(自分のPC内)に本番と近いテスト環境を構築することは非常に重要ですよね。
従来、MAMPやVagrantといったツールが主流でしたが、近年では「Docker(ドッカー)」が急速に普及しています。Dockerは「コンテナ型仮想化」という技術を使い、軽量で高速に、かつ誰でも同じ環境を簡単に再現できるのが大きな特長です。
この記事では、特に「Windows 10 Home」をお使いのWeb制作者や初心者の方に向けて、以下の内容を解説します。
- Docker Desktopのインストール方法(Windows 10 Home)
- Docker Composeを使ったWordPressテスト環境の構築手順
- MAMPやVagrantといった他のツールとの比較
- どのような場合にDockerが適しているか
Windows 10 HomeへのDocker Desktopインストール
※この記事の手順は、Windows 10 Home(バージョン 2004以降)でWSL 2 (Windows Subsystem for Linux 2) を利用することを前提としています。以前はWindows 10 Pro以上が必要でしたが、現在はHomeエディションでもDocker Desktopが利用可能です。
Docker Desktop と Docker Toolbox
かつてWindows 10 HomeでDockerを使うには「Docker Toolbox」という別のツールが必要でしたが、現在はWSL 2の登場により、Pro版と同じ「Docker Desktop for Windows」が公式にサポートされています。
| Windows 10 Pro / Enterprise / Home (WSL 2対応) | 古いWindows 7 や Home (WSL 2非対応) |
|---|---|
| Docker Desktop for Windows | Docker Toolbox(現在非推奨) |
なお、Docker Desktop for Windowsが使用するWSL 2は、VirtualBox(Vagrantなどで使用)と共存しにくい場合があります。もしVagrantを多用する場合は注意が必要でしたが、最近のバージョンアップで共存も容易になってきています。
1. Docker Desktop for Windowsをダウンロード
まずはDockerの公式サイト(Docker Hub)からインストーラーをダウンロードします。
Docker Hub: Docker Desktop for Windows

2. 指示に従ってインストール
ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを進めてください。途中でWSL 2の有効化に関するオプションが表示された場合は、必ずチェックを入れてください。
3. WSL 2 (Linuxカーネル) の更新
Docker Desktopの起動時、「WSL 2 installation is incomplete」というメッセージが表示される場合があります。これは、Dockerが依存するLinuxカーネルが古いか、インストールされていないためです。

その場合は、メッセージ内のリンク(またはMicrosoftの公式ページ)から「Linuxカーネル更新プログラムパッケージ」をダウンロードし、インストールしてください。インストール完了後、Docker Desktopを再起動すれば準備完了です。
Docker ComposeでWordPress環境を構築する
Dockerでは、機能ごとに「コンテナ」と呼ばれる独立した環境を立ち上げます。WordPressを動かすには、Webサーバー機能を持つ「WordPressコンテナ」と、データベース機能を持つ「MySQLコンテナ」の2つが必要です。
これらを個別に設定・起動するのは手間がかかります。そこで「Docker Compose」というツールを使います。これは、複数のコンテナ構成を1つの設定ファイル(docker-compose.yml)で一括管理できる、Dockerに標準搭載された便利な機能です。
1. docker-compose.ymlを用意する
まず、PC内の分かりやすい場所(例: C:\Users\YourName\docker-wp など)に作業用のフォルダを作成します。このフォルダ内に、docker-compose.ymlという名前のテキストファイルを作成し、以下の内容をコピー&ペーストしてください。
(この設定ファイルは、Docker公式ドキュメントのWordPress用設定をベースに、データをPC側に保存するよう一部変更したものです。)
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
# PC側の「./.data/db」フォルダにDBデータを保存
- ./.data/db:/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
volumes:
# PC側の「./www」フォルダをWordPressの公開フォルダとして同期
- ./www:/var/www/html
ports:
# PCの「8000番ポート」でアクセス可能にする
- "8000:80"
restart: always
# WordPressからDBへの接続設定
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
設定のポイント:
dbのvolumes:./.data/db:/var/lib/mysql
これにより、MySQLのデータベース情報がコンテナ内ではなく、PC上の./.data/dbフォルダにファイルとして保存されます。コンテナを停止・削除してもデータが消えず、バックアップや共有が容易になります。wordpressのvolumes:./www:/var/www/html
これにより、PC上の./wwwフォルダがWordPressの公開ディレクトリ(/var/www/html)と同期します。PC側でテーマやプラグインのファイルを編集すると、即座にコンテナ内のWordPressに反映されます。wordpressのports:"8000:80"
PC(ホスト)の8000番ポートへのアクセスを、コンテナ内の80番ポート(Webサーバー)に転送します。これにより、ブラウザからhttp://localhost:8000でアクセスできるようになります。
2. コマンドで実行
docker-compose.ymlを保存したら、コマンドプロンプトやPowerShellを開き、cdコマンドでdocker-compose.ymlを保存した作業フォルダに移動します。
そして、以下のコマンドを実行してください。必要なイメージ(WordPressやMySQL)のダウンロードと、コンテナの構築・起動が自動的に行われます。
$ docker-compose up --build -d
(-d オプションは「デタッチドモード」を意味し、コマンド実行後もバックグラウンドでコンテナを起動し続けます)
3. ブラウザで確認して完了
起動が完了したら、Webブラウザを開き、docker-compose.ymlのports:で指定した番号(今回は8000番)を使ってアクセスします。
http://localhost:8000
見慣れたWordPressの初期インストール画面が表示されれば、ローカル環境の構築は成功です!
MAMP、Vagrantとの比較
Dockerは強力ですが、他のツールと比べてどのようなメリット・デメリットがあるのでしょうか。簡単に比較してみましょう。
| Docker | MAMP / XAMPP | Vagrant | |
|---|---|---|---|
| 手軽さ | △ (初期学習が必要) | ◎ (インストール即利用可) | △ (設定ファイルが必要) |
| 環境の再現性 | ◎ (ymlファイルで完全再現) | △ (設定の共有が困難) | ○ (Vagrantfileで再現) |
| 軽量さ・速度 | ○ (コンテナ型) | ○ (プロセス起動) | △ (完全な仮想マシン) |
| 本番環境との近さ | ◎ (コンテナ構成を揃えやすい) | △ (バージョン差異が出やすい) | ○ (OSレベルで揃えられる) |
Dockerのメリット・デメリットまとめ
メリット:
- 設定ファイル(
docker-compose.yml)を共有するだけで、誰でも同じ環境をコマンド一つで構築できる。 - 設定ファイル自体は非常に軽量。
- コンテナは軽量で、起動や破棄が高速。
デメリット:
- コンテナ、イメージ、ボリュームといったDocker特有の仕組みをある程度理解する必要がある(学習コスト)。
- 操作がCUI(黒い画面)メインになることが多い。
- サーバー全体の設定(例: 複数の仮想ドメイン)を直感的に把握するのが、MAMPのGUIなどに比べると難しい場合がある。
どのような環境でDockerを選ぶべきか
では、あなたの制作環境にはどのツールが合っているでしょうか?
- MAMP / XAMPPがおすすめな人:
とにかく手軽にPHPやWordPressが動く環境が欲しい初心者の方。静的なWebサイト制作がメインの方。 - Dockerがおすすめな人:
チームで開発環境を統一したい方。本番環境と厳密にバージョンを合わせたい方。Vagrantの重さに不満がある方。 - Vagrantがおすすめな人:
サーバーOSレベルでの詳細な設定や、複雑なネットワーク構成が必要な方。OS全体の挙動を把握したい方。
私たちの制作環境では、設定の共有が簡単で軽量なDockerは非常に魅力的です。一方で、学習コストの低いMAMPの手軽さも捨てがたいものがあります。案件の特性やチームのスキルセットに合わせて、これらのツールを賢く使い分けることが重要と言えそうです。

よくある質問(FAQ)
Q1: MAMPやXAMPPと比べて、Dockerの学習コストは高いですか?
A1: はい、最初はMAMPなどより学習コストがかかります。MAMPが「インストールすれば使える家電」だとすれば、Dockerは「設定ファイル(docker-compose.yml)という設計図を書いて動かす」イメージです。ただし、一度.ymlファイルの書き方を覚えてしまえば、WordPress以外の環境(Node.jsなど)も同じ仕組みで構築でき、非常に強力な武器になります。
Q2: Windows 10 HomeでDockerを使うために、WSL 2は必須ですか?
A2: はい、現在のDocker Desktop for Windowsは、Windows 10 Home/Proを問わず、WSL 2(Windows Subsystem for Linux 2)の利用が前提となっています。WSL 2はWindows上でLinuxカーネルを直接実行する技術で、これにより従来のDocker Toolboxよりも高速かつ安定した動作が可能になりました。
Q3: docker-compose.yml をチームで共有する際、他に注意点はありますか?
A3: .ymlファイルと一緒に、.gitignoreファイル(Git管理下にある場合)の設定も確認しましょう。記事で紹介した設定では、データベースの生データ(./.data/)や、WordPressのコアファイル・プラグイン(./www/)がPC側に保存されます。これら全てをGitで共有する必要はありません。.ymlファイル本体と、開発中の自作テーマ(例: ./www/wp-content/themes/my-theme/)など、必要なファイルだけを共有するよう設定するのが一般的です。