【Web担当者必見】Docker Desktopで作る「汚れない」WordPressテスト環境

Linux Mintをお使いの皆さん、こんにちは!

WordPressでホームページを運用している際に、新しいテーマに変更する際、CSSをいじった時、新しいプラグインを試したい時など、本番サイトでいきなり実行するのは抵抗がありますよね。

今回は、Dockerでカンタンに自分のパソコン内に「何度壊しても一瞬で元通りになるWordPress環境」を構築する方法を見ていきたいと思います。

ステップ1:作業用フォルダの準備

ファイルマネージャーを開き、「ドキュメント」などの場所に wp-test というフォルダを作ります。

そのフォルダの中で右クリックし、名前を docker-compose.yml とした空のファイルを作成します。

ステップ2:設計図(YAML)の内容をAIに依頼

この「docker-compose.yml 」ですが、Google GeminiやChat GPTに依頼するとカンタンです。

プロンプト例

WordPressのテスト環境をDocker Composeで作りたいです。データを他のPCにフォルダごとコピーして移動できるように、ボリューム設定は『名前付きボリューム』ではなく、カレントディレクトリの相対パス(例:./db_data)に直接保存する『バインドマウント』形式で記述してください。また、Linux環境で権限の問題が起きにくい設定にしてください。

ステップ2:設計図(YAML)のコピペ

Google Geminiで生成してもらった内容は下記の通りなのですが、Open Web UIなど、他のツール(8080番)と衝突しないよう、このガイドでは 8081番 を使用するように自分で修正しました。
以下の内容をdocker-compose.yml に貼り付けて保存します。

services:
  db:
    image: mysql:8.0
    container_name: wp_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: wp_password
    volumes:
      # ↓ここがポイント!DBデータを同じフォルダ内の「db_data」に保存します
      - ./db_data:/var/lib/mysql

  wordpress:
    image: wordpress:latest
    container_name: wp_app
    restart: always
    ports:
      - 8081:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: wp_password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      # ↓ここもポイント!画像やテーマを同じフォルダ内の「wp-content」に保存するようにします
      - ./wp-content:/var/www/html/wp-content
    depends_on:
      - db

ステップ3:起動前に「環境の修理」をする

Linux Mintの最新環境では古いコマンドでは動かなかったので、以下の「 docker-compose-v2」で実行してみました。

① 新しい「Docker Compose V2」を入れる

sudo apt update
sudo apt install docker-compose-v2

② 権限(Permission Denied)を解消する

sudo usermod -aG docker $USER

【重要】 このコマンドを実行した後、いったんログアウトして、再ログインしないと設定が反映されません

ステップ4:いよいよ起動!

「wp-test」フォルダに移動して、空きスペースで右クリック。「端末で開く」を選択します。

dockerの起動コマンドを打ちます。

docker compose up -d

ステップ5:WordPressの初期設定

ブラウザで以下のURLにアクセスします。ポート番号が 8081 になっていることに注意してください。

http://localhost:8081

言語選択に続いて、初期設定を行うと、いつものWordPressが利用可能となります。

記事の内容

【運用あるある】起こりがちなトラブルへの対処法

あるある1,ポート番号の重複への対応

いくつもDockerのコンテナを立ち上げる際にうっかりポート番号を重複させてしまうことがあります。
特に8080はいろんなソリューションで用いられます。

その場合、Dockerの”設計図”となる「docker-compose.yml」ファイルの記述の中のports欄の数値を書き換えて保存します。

ファイルが保存されたら、改めて次のコマンドで起動させます。
この時、忘れてはいけないのは、「wp-test」ディレクトリで起動コマンドを実行する点です。

docker compose up -d

これで、Dockerが自動的に変更を検知し、設定を反映し直してくれます。

あるある2:以前衝突していたアプリ(Open Web UIなど)の復旧

WordPressのポートを8080以外のもにに変更して起動しても、以前衝突して停止してしまったOpen Web UIが自動的に動き出すことはありません。

  1. Open Web UIのフォルダに移動します。
  2. そこで docker compose up -d を実行します。

あるある3:「Conflict. The container name is already in use」と出たら?

もし docker run などでコンテナを立ち上げようとして「その名前は既に使われています」と怒られた場合、Dockerの中に古いコンテナの「殻」が残っています。

  • 解決策1:古い殻を消す docker rm -f open-webui (名前はエラーに出ているもの)を実行して、古いコンテナを完全に削除してから、再度立ち上げ直します。
  • 解決策2:既存のコンテナを叩き起こす docker start open-webui を実行すれば、新しく作らずに既存のものを再利用できます。

一度作った環境をバックアップする、他へ移設する方法

今回のdocker-compose.yml のように、生成されるデータをひとまとめになるように指定しておくことでバックアップがとても楽になります。

今回作成した「wp-test」ディレクトリを保存しておけばOKです。

これを丸ごと他のパソコンにコピペして、そのディレクトリ内で「docker compose up -d」を実行すれば、引き継ぎは完了です。
これ、とっても便利です。

全てを削除して「後片付け」する

全てを無かったことにして、PCをスッキリさせたい時はこのコマンドです。

docker compose down -v

この down コマンドは、コンテナを止めるだけでなく「殻」もきれいに掃除してくれるため、次に起動する時に「名前が重複しています」というエラー(Conflict)が出るのを防いでくれる頼もしい味方になります。

さいごに

「Dockerは開発者のためのもので、専門的で難しい」と思われがちですが、今回のように「フォルダまるごとコピー方式」であれば、ビジネスでも驚くほど手軽に活用できます。

この手法を取り入れることで、以下のようなメリットが得られます。

  1. 「一瞬で同じ環境」が作れる: 難しい初期設定は不要です。設計図をコピーするだけで、誰のPCでもすぐに同じ作業環境が整います。また、その設計図はAIに任せればラクチンです。
  2. 「フォルダを運ぶだけ」で引越し完了: 複雑な移行作業はいりません。フォルダをUSBやクラウドで共有するだけで、別のPCでもそのまま続きから仕事ができます。
  3. 「チームでの共有」がスムーズ: 属人化を防ぎ、新メンバーへの引き継ぎやPCの買い替えもスムーズです。

個人の試行錯誤からチームでの共同プロジェクトまで、この「最強で最速の引越し術」をぜひビジネスの現場で活用できるよう、これからも模索していきたいと思っています。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

情報環境コミュニケーションズ 代表
企業、団体のITコンサル、サポート、システム構築/管理、大学の招聘研究員として大規模調査の設計、集計の効率化、解析などを行っています。
最近ではAI開発環境の構築のサポートも行うようになってきました。
<著書>2008年〜2015年、テクニカルライターとして、週間アスキー、Ubuntuマガジン、Linux 100%, Mac 100%, Mr.PCなど多数のIT系雑誌に寄稿。

コメント

コメントする

記事の内容