こんにちは、Яeiです。
今回は現役エンジニアである私がdocker-composeを用いたWordPress環境の構築についてお伝えいたします。
基本的には以下のクイックスタートを元に致しますので、細かい解説が不要な方は直接以下ご参照頂けたらと思います。
当記事ではこのクイックスタートをさらにかみ砕いて解説致します。
出典:「クィックスタート: Compose と WordPress」
目次
DockerとかDocker-composeってそもそも何?
詳細は省きますが、自分のパソコンの中に複数のパソコンを簡単に作りますよ、というのを実現するためのツールになります。
(仮想化とか呼んだりします)
例えば、AmazonさんやGoogleさん、Microsoftさんは自前のパソコンにこういったパソコン環境を作ってレンタルしてくれるサービスを行っております。
現在、各企業は今までのパソコン環境からこうしたレンタル環境に環境を移していっているのです。
大きな理由は安いし安心だから。
自分でサーバを構築するには労力とその後のメンテナンスなどコストが凄いものです。
こうした嫌な部分を解消してくれたのでAWSやGCP、Azureと呼ばれるサービスなのです。
dockerはこうした仮想化とはまた別のタイプの仮想化となりますがイメージはこんな感じです。
環境構築は本当に大変なものですが、dockerを用いることでコマンド一つで環境構築することができるのです。
Docker環境の構築
当記事では構築方法については省略致しますが、以下が使いやすいことでしょう。
検索すれば分かりやすい導入方法が分かりますので適宜調べてみて下さい。
・Docker Desktop for Windows
・Docker Desktop for Mac
・Docker Toolbox
ただし、Docker Desktopの方が新しいのでこちらを使いたいものですが、私の環境ではこれが使えなかったのでDocker Toolboxを利用しております。
そのため、使える人はDocker Desktopを採用し、駄目だった場合はDocker Toolboxを採用すれば良いと思います。
エディタ
使いやすければ何でも良いです。
dockerの場合はDockerfile、docker-composeの場合はdocker-compose.ymlファイルを作成します。
ファイル編集をすることになりますので、編集しやすいエディタを使いましょう(ただしメモ帳はよろしくないです)。
今回はVisual Studio Codeを採用したいと思います。
構成イメージ
構成イメージ図は以下のような感じになります。
(今回はクイックスタートのため、WEBサーバは構築しておりません)
注目すべきはWordPressをインストールするコンテナとMySQLをインストールするコンテナになります。
WordPressはデータをDBに保持することで機能しておりますのでDBも必要になるのです。
WordPressをインストールするコンテナに一緒に入れる案もあるのですが、コンテナ化の前提としては1プロセス1コンテナというものがあります。
(実際には1プロセス1コンテナは難しいので1機能1コンテナが努力目標となります)
実行
Dockerを用いることで先の構成を簡単に再現することができます。
「docker-compose.yml」ファイルを作成し、以下のコードをコピペして保存して下さい。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/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
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
その後、ファイルがあるフォルダに移動して以下のコマンドをたたいて下さい。
docker-compose up -d
$ docker-compose up -d
Creating network "01_wordpress_default" with the default driver
Creating 01_wordpress_db_1 ... done
Creating 01_wordpress_wordpress_1 ... done
これにて、先ほどの構成が構築されました。
dockerを用いることで、先人が構築してくれた環境を簡単に再現できるのです。
dockerさんまじ半端ないっす!
試しに以下のコマンドを実行してみて下さい。
docker-compose ps
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------
01_wordpress_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
01_wordpress_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8000->80/tcp
ここでは起動したコンテナを確認できます。
DBコンテナとWordPressコンテナが起動していることが分かります。
それでは問い合わせしてみましょう。
http://localhost:8000
ちなみに、ToolBoxを使っている方は以下になります。
http://192.168.99.100:8000
ToolBoxの場合は、
Windows→仮想マシン→コンテナ
という流れになるようなので、このようになるそうです。
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v19.03.12
さて、先ほどのURLで問い合わせを行うと以下のようなWordPressインストール画面になります。
設定していきましょう。
次に必要情報を入力致します。
以下画面ではメールアドレス欄が空白になってますが、実際には設定が必要になります。
また、パスワードも適宜変更して下さい。
これでWordPressをインストールを選択するとインストールが実施されます。
あとはログインして下さい。
これにてWordPressを使えるようになりましたので、ブログを作成するなり、HPを作成するなりできるようになりました。
ただし、あくまでもここまでの設定では自分のパソコンのみの話になりますのでインターネット上に公開されたわけではないので注意して下さい。
あくまでも新機能やプラグインを採用するか否かの実験に使える程度でしょうかね。
もちろん、自分でサーバレンタルなり構築して
そこで設定すれば良いのですが、そこまでやるくらいならブログくらいであればレンタルサーバの方が良さそうですね。
最後に以下のコマンドで環境を削除できます。
docker-compose down –volumes
当記事は以上となります。
今回は先人が用意してくれたものを使ってWordPress環境を構築致しました。
dockerの場合、先人がすでに簡単に環境構築できるようにひな形を作ってくれていることが多いです。
もしも自分で色々セットアップしたい場合は、Dockerfileと呼ばれるファイルを作成することでさらに柔軟な環境が構築できます。
自分のブログへの影響が怖いけど、新機能やプラグインを実験したい場合などに使うとよいかもしれませんね。
(コマンド一つで環境構築できてしまうので)
長々とお疲れさまでした。