DockerによるWordPress環境構築ガイド
システム概要
本ガイドでは、Dockerを使用して開発用のWordPress環境を構築する方法を説明します。日次バックアップ機能を備え、安全に運用できる環境を提供します。プログラミングの学習やテーマ開発など、ローカル環境でWordPressの練習をしたい方に最適な構成となっています。
Windows、Mac、Linux、いずれの環境でも構築可能です:
- Windows環境の方:Docker Desktopを使用する簡単な方法を後述しています
- Mac環境の方:Docker Desktop for Macを使用する方法を説明しています
- Linux環境の方:Docker Engineを直接使用する方法を説明しています
本ガイドでは、まずLinux環境での構築方法を説明し、その後Windows環境やMac環境での具体的な手順を詳しく解説します。WindowsユーザーもDocker Desktopを使用することで、同じように環境を構築できますので、ご安心ください。
前提条件
推奨環境(Linux)
- オペレーティングシステム
- Ubuntu 20.04 LTS 以降
- Debian 11 以降
- その他のLinuxディストリビューション
- 必要なソフトウェア
- Docker Engine
- Docker Compose
- Git
Dockerのインストール(Ubuntu/Debianの場合)
# 古いバージョンを削除(既存のインストールがある場合)
sudo apt-get remove docker docker-engine docker.io containerd runc
# 必要なパッケージのインストール
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# Dockerの公式GPGキーを追加
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# リポジトリの設定
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Dockerパッケージのインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Dockerグループにユーザーを追加(sudo不要でDockerを実行可能に)
sudo usermod -aG docker $USER
# システム再起動が必要
echo "システムの再起動後、変更が反映されます"
インストールの確認
# Dockerバージョンの確認
docker --version
docker compose version
# Dockerデーモンの状態確認
sudo systemctl status docker
# テストコンテナの実行
docker run hello-world
補助的な環境(オプション)
- WSL2環境の場合
- Windows 10/11でWSL2を使用している場合も、上記のLinuxインストール手順が適用できます
- WSL2内でUbuntuをインストールし、その中でDockerを動作させることを推奨します
- macOS環境の場合
- Docker Desktop for Macのインストールも可能ですが、本ガイドではLinux環境を推奨します
システムの特徴
主な機能
- WordPress環境
- 最新版WordPressの自動セットアップ
- Apache/PHP環境の最適化
- マルチサイト対応可能な設定
- データベース環境
- MySQL最新版
- 自動バックアップ機能
- データの永続化
- 開発支援機能
- ログの自動保存
- 権限の自動設定
- 簡単なセットアップスクリプト
セキュリティ対策
- 強固なパスワード設定
- 適切な権限管理
- セキュアなデータベース設定
Windows環境でのセットアップ(代替方法)
Windows環境では、以下の2つの方法でDocker環境を構築できます:
- WSL2 + Linuxでの構築(推奨)
- Docker Desktop for Windowsでの構築
Docker Desktop for Windowsのインストール
- システム要件の確認
- Windows 10/11 Pro, Enterprise, Education(64ビット)
- Home Edition の場合はWSL2が必要
- 仮想化が有効化されていること(BIOSで確認)
- WSL2のインストール
powershell
# PowerShellを管理者として実行
# WSLのインストールwsl --install
# WSLのバージョン2への更新wsl --set-default-version 2
- Docker Desktopのインストール
- Docker Desktop公式サイトにアクセス
- 「Download for Windows」をクリック
- インストーラーをダウンロードして実行
- インストール時のオプション:
- 「Use WSL 2 instead of Hyper-V」にチェック
- 「Add shortcut to desktop」は任意
- インストール後の設定
- Docker Desktopを起動
- 右下の通知アイコンでDockerが正常に動作していることを確認
- Settings > Resources > WSL Integrationで使用するLinuxディストリビューションを有効化
Gitのインストール
- Git for Windowsのダウンロード
- Git for Windows公式サイトにアクセス
- 「Download」ボタンをクリック
- インストール手順
- インストーラーを実行
- 以下の推奨設定:
• Git Bash and Git GUI: チェック
• Git from the command line…: チェック
• Use Visual Studio Code as Git’s default editor: お好みで
• Use Git from Git Bash only: 推奨
• Use bundled OpenSSH: 推奨
• Use the OpenSSL library: 推奨
• Checkout Windows-style…: 推奨
• Use Windows’ default console window: チェック
• Enable file system caching: チェック
• Enable Git Credential Manager: チェック
- 動作確認
cmd
# コマンドプロンプトまたはPowerShellで実行git --version
インストール後の確認
- Docker
cmd
# PowerShellで実行docker --version
docker compose version
docker run hello-world
- Git
cmd
# PowerShellで実行git --version
# 初期設定git config --global user.name "あなたの名前"
git config --global user.email "あなたのメール"
トラブルシューティング
- Docker Desktopが起動しない場合
- WSL2が正しくインストールされているか確認
- BIOSで仮想化が有効になっているか確認
- Windows機能の「Hyper-V」と「WSL」が有効になっているか確認
- Git Bashが起動しない場合
- インストーラーを管理者として実行
- アンチウイルスソフトが干渉していないか確認
- インストーラーを管理者として実行
- アンチウイルスソフトが干渉していないか確認
ファイルの入手方法
GitHubからのダウンロード
以下の2つの方法でファイルを入手できます:
方法1: GitHubからの直接ダウンロード(GUIを使用)
- ブラウザでwpbkリポジトリにアクセス
- 緑色の「Code」ボタンをクリック
- 「Download ZIP」を選択
- ダウンロードしたZIPファイルを任意の場所に解凍
- Windowsの場合:
- ダウンロードフォルダ内のZIPファイルを右クリック
- 「すべて展開」を選択
- 展開先を選択(例:
C:\workspace\wpbk
)
- Windowsの場合:
方法2: Gitコマンドを使用
# Linuxの場合# Windowsの場合(Git Bash、PowerShell、コマンドプロンプトいずれでも可)
git clone https://github.com/superdoccimo/wpbk.git
cd wpbk
git clone https://github.com/superdoccimo/wpbk.git
cd wpbk
ファイル構成の説明
ダウンロードまたはクローンしたフォルダには、以下のファイルが含まれています:
wpbk/
├── .env # 環境設定ファイル
├── docker-compose.yml # Dockerコンテナの設定ファイル
├── Dockerfile # WordPressコンテナのビルド設定
├── entrypoint.sh # コンテナ起動時の初期設定スクリプト
├── setup.sh # 環境セットアップスクリプト
├── php.ini # PHP設定ファイル
└── README.md # 説明ファイル
主要ファイルの役割
- .env
- データベースのパスワードなど、重要な設定を管理セキュリティのため、本番環境では必ず値を変更してください
# 設定例WORDPRESS_DB_HOST=db
WORDPRESS_DB_USER=wordpress
WORDPRESS_DB_PASSWORD=StrongP@ssw0rd123!
- docker-compose.yml
- Dockerコンテナの構成を定義
- WordPressやデータベース、バックアップの設定を含む
- ポート番号やボリュームの設定が含まれる
- setup.sh
- 環境構築に必要な初期設定を自動化
- 必要なフォルダの作成
- 適切な権限の設定
初期確認事項
- ポート確認
- デフォルトで8080ポートを使用
- このポートが他のアプリケーションで使用されていないことを確認
- Windowsの場合:
cmd
# PowerShellで確認netstat -an | findstr "8080"
- Linuxの場合:
bashnetstat -an | grep 8080
- フォルダのパーミッション
- Windowsの場合:特別な設定は不要
- Linux/Macの場合:
bash
# 実行権限の付与chmod +x setup.sh
環境の起動手順
起動前の確認
- Docker/Docker Desktopの起動確認
- Windows環境:
- タスクバーの通知領域でDockerアイコンを確認
- アイコンが緑色で動いていれば正常に動作中
- Docker Desktopを起動していない場合はスタートメニューから起動
- Linux環境:
bash
# Linux(ターミナル)での確認sudo systemctl status docker
- Windows環境:
- 必要なフォルダの存在確認 すでに以下のフォルダが存在することを確認します:
wpbk/
├── wordpress/ # 存在しない場合は自動作成されます
└── backup/ # 存在しない場合は自動作成されます
環境の起動方法
方法1: GUI(Docker Desktop)を使用する場合
- Docker Desktopを開く
- 左メニューの「Containers」をクリック
- 右上の「Run」ボタンをクリック
- wpbkフォルダまで移動して選択
- 起動状態を確認
- すべてのコンテナが緑色になるまで待機
- Status列が「Running」になることを確認
方法2: コマンドラインを使用する場合
Linux/Mac(ターミナル)の場合:
bash
# 実行権限を付与# セットアップスクリプトを実行
chmod +x setup.sh
./setup.sh
Windows(Git Bash)の場合:
bash
# Linux/Macと同じコマンドが使用可能
chmod +x setup.sh
./setup.sh
Windows(PowerShell)の場合:
powershell
.\setup.sh
Windows(コマンドプロンプト)の場合:
cmd
setup.sh
起動確認手順
- ブラウザでの確認
- ブラウザで
http://localhost:8080
にアクセス - WordPressの初期設定画面が表示されることを確認
- ブラウザで
- コンテナの状態確認 Linux/Mac(ターミナル)の場合:
bashdocker compose ps
Windows(PowerShell/コマンドプロンプト)の場合:
powershelldocker compose ps
Windows(Git Bash)の場合:
bashdocker compose ps
- ログの確認方法
- GUI(Docker Desktop)の場合:
Linux/Mac(ターミナル)またはWindows(Git Bash)の場合:
bash
# すべてのコンテナのログを確認docker compose logs
# 特定のコンテナのログを確認(例:wordpress)docker compose logs wordpress
Windows(PowerShell/コマンドプロンプト)の場合:
powershell
# すべてのコンテナのログを確認docker compose logs
# 特定のコンテナのログを確認(例:wordpress)docker compose logs wordpress
トラブルシューティング
- 「port is already allocated」エラーが表示される場合
- 原因:8080ポートが他のアプリケーションで使用中
- 解決策:
docker-compose.yml
を開く"8080:80"
を"8081:80"
など、別のポートに変更- 再度起動を試みる
- コンテナが起動しない場合
- Docker Desktopの場合:
すべての環境で共通のコマンドライン解決方法:
bash
# コンテナを停止docker compose down
# キャッシュを使用せずに再ビルドdocker compose build --no-cache
# 再起動docker compose up -d
データベースバックアップについて
バックアップの特徴
- 独立したバックアップ方式
- 通常のDockerボリュームとは別の形式でバックアップを作成
- SQLダンプ形式で保存されるため、他の環境への移行が容易
- データベース全体を一括でバックアップ
- バックアップのタイミング
- 初回:コンテナ起動後、WordPressテーブルの作成を確認次第
- 定期バックアップ:24時間ごとに自動実行
- バックアップは
backup
フォルダに保存
- バックアップファイルの特徴
# バックアップファイル名の形式
wordpress_backup_YYYYMMDD_HHMMSS.sql
# 例:wordpress_backup_20240317_143022.sql- 日時がファイル名に含まれるため、特定の時点に戻すことが可能
- テキスト形式なので内容の確認や編集が可能
- 別のMySQLサーバーへの移行も容易
バックアップ間隔のカスタマイズ
docker-compose.yml
の以下の部分で設定可能:
yaml
# Linux/Mac(ターミナル)やWindows(Git Bash)で開く場合:
sleep 86400 # 24時間(秒単位)
一般的な設定例:
- 1時間:3600
- 6時間:21600
- 12時間:43200
- 24時間:86400(デフォルト)
- 48時間:172800
バックアップファイルの確認方法
Linux/Mac(ターミナル)の場合:
bash
# バックアップフォルダの内容を表示ls -l ./backup
# 最新のバックアップファイルを確認ls -lt ./backup | head -n 2
Windows(PowerShell)の場合:
powershell
# バックアップフォルダの内容を表示Get-ChildItem .\backup
# 最新のバックアップファイルを確認Get-ChildItem .\backup | Sort-Object LastWriteTime -Descending | Select-Object -First 1
Windows(エクスプローラー)の場合:
- プロジェクトフォルダ内の
backup
フォルダを開く - 表示タブから「詳細」を選択
- 「更新日時」でソートして最新のファイルを確認
バックアップの活用方法
- 障害復旧
- サイトに問題が発生した場合、過去の正常な状態に戻すことが可能
- 複数の時点のバックアップから最適なものを選択可能
- 開発環境の移行
- 新しい開発環境の構築時にバックアップファイルを利用可能
- テスト環境から本番環境への移行時にも使用可能
- バージョン管理
- データベースの変更履歴として活用
- プラグインやテーマの更新前後でのバックアップ比較が可能
注意事項
- バックアップファイルは定期的に別の場所にコピーすることを推奨
- 古いバックアップファイルは定期的に整理する
- 重要な変更を行う前には手動でバックアップを取得することを推奨