これからWordPressを5サイト以上運営する予定です。
そのため、直インストールではなく
Dockerで独立構成を作ることにしました。
今回はその「1号機」を作ります。
将来的に横展開できる設計です。
1. 今回の完成イメージ
Cloudflare Tunnel
↓
Nginx
↓
Docker
├─ wordpress1(PHP + WordPress)
└─ db1(MariaDB)
WordPressとDBはセットで独立。
これをコピペするだけで
2号機、3号機が作れる設計にします。
2. 作業ディレクトリ作成
まず専用ディレクトリを作ります。
mkdir -p ~/docker/wordpress1
cd ~/docker/wordpress1
3. docker-compose.yml を作成
nano docker-compose.yml
内容:
version: '3.8'services:
db:
image: mariadb:10.6
container_name: wp1_db
restart: always
environment:
MYSQL_DATABASE: wordpress1
MYSQL_USER: wpuser
MYSQL_PASSWORD: strongpassword
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
- db_data:/var/lib/mysql wordpress:
image: wordpress:latest
container_name: wp1_app
restart: always
ports:
- "8081:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: strongpassword
WORDPRESS_DB_NAME: wordpress1
volumes:
- wp_data:/var/www/html
depends_on:
- dbvolumes:
db_data:
wp_data:
※ パスワードは必ず変更してください。
保存:
Ctrl + O → Enter
終了:
Ctrl + X
4. コンテナ起動
docker-compose up -d
確認:
docker ps
wp1_db と wp1_app が表示されれば成功。
5. 動作確認
ブラウザで:
http://サーバーIP:8081
WordPress初期画面が出ればOK。
6. Nginxと接続
Nginx側で設定追加:
sudo nano /etc/nginx/sites-available/wp1
内容:
server {
listen 80;
server_name tech.gotohsys.com; location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
有効化:
sudo ln -s /etc/nginx/sites-available/wp1 /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
7. Cloudflare Tunnel側
Cloudflare側で:
tech.gotohsys.com → http://localhost:80
に設定。
これで
Cloudflare → Nginx → Docker → WordPress
が完成。
8. この構成のメリット
- サイトごとに完全独立
- PHPバージョン衝突なし
- DBも分離
- バックアップ簡単
- 2号機はコピペで作れる
9. 量産方法(超簡単)
wordpress1 フォルダをコピー:
cp -r wordpress1 wordpress2
ポート番号だけ変更。
8082, 8083…
これだけ。
10. 実際にやってみて
直インストールよりも、
「管理している感」があります。
壊れてもコンテナ単位で止められる。
これは大きな安心感です。
まとめ
複数WordPressを運営するなら、
Docker構成は最適解に近いです。
今回作った1号機は、
今後のテンプレートになります。


コメント