初心者向け!Dockerを使ったWordPressテスト環境構築入門 (Windows編)

はじめに: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

Docker Hubのダウンロードページ

2. 指示に従ってインストール

ダウンロードしたインストーラーを実行し、画面の指示に従ってインストールを進めてください。途中でWSL 2の有効化に関するオプションが表示された場合は、必ずチェックを入れてください。

3. WSL 2 (Linuxカーネル) の更新

Docker Desktopの起動時、「WSL 2 installation is incomplete」というメッセージが表示される場合があります。これは、Dockerが依存するLinuxカーネルが古いか、インストールされていないためです。

WSL 2のインストールが不完全である旨の警告

その場合は、メッセージ内のリンク(または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

設定のポイント:

  • dbvolumes: ./.data/db:/var/lib/mysql
    これにより、MySQLのデータベース情報がコンテナ内ではなく、PC上の./.data/dbフォルダにファイルとして保存されます。コンテナを停止・削除してもデータが消えず、バックアップや共有が容易になります。
  • wordpressvolumes: ./www:/var/www/html
    これにより、PC上の./wwwフォルダがWordPressの公開ディレクトリ(/var/www/html)と同期します。PC側でテーマやプラグインのファイルを編集すると、即座にコンテナ内のWordPressに反映されます。
  • wordpressports: "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.ymlports:で指定した番号(今回は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の手軽さも捨てがたいものがあります。案件の特性やチームのスキルセットに合わせて、これらのツールを賢く使い分けることが重要と言えそうです。

MAMP, Vagrant, Dockerの使い分けイメージ図

よくある質問(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/)など、必要なファイルだけを共有するよう設定するのが一般的です。

CONTACT

webサイト制作、デザインに関するご相談、御見積のご依頼など、弊社へのお問い合わせはこちら