1. HOME
  2. 開発・ブログ運営
  3. Docker
  4. Docker for Mac を使って WordPress のロ−カル環境(LAMP)を構築する方法
2016年07月29日
Docker for Mac/Windows で 「Canno ...
2016年07月29日
Docker 公式イメージで立ち上げた Nginx コンテナを ...
2016年07月27日
Docker コンテナが消費しているリソース(CPU とか メ ...
2016年08月01日
Docker for Mac を使って WordPress の ...
2016年07月08日
オライリーの Docker 本(Docker Up & ...
2016年07月22日
WordPress が稼働する Apache2 コンテナと N ...

Docker for Mac を使って WordPress のロ−カル環境(LAMP)を構築する方法

Docker for Mac の登場によって Mac のローカル開発環境は Vagrant よりも Docker の方が良いかもしれませんね。

WordPress を動かすためのコンテナ構成

今回は Docker Hub に登録されている WordPress の公式イメージを使用して WordPress コンテナを立ち上げます。

WordPress の公式イメージ には Apache 2.4.10 と PHP 5.6.23 が含まれており、Apache の 基本設定済みです。もちろん Apache のドキュメントルートには WordPress 4.5.3 がインストールされてます。

また WordPress を動かすためにはデータベースが必要ですが、WordPress コンテナにデータベースは含まれていません。なぜなら Docker コンテナは 1コンテナ1プロセスが原則だからです。

ということでデータベースは、WordPress コンテナ同様に Docker Hub に登録されている MySQL の公式イメージを使用して、WordPress コンテナとは別に MySQL コンテナを立ち上げます。ちなみに MySQL のバージョンは 5.7.13。


コンテナの起動方法

今回は WordPress コンテナと MySQL コンテナの 2 つのコンテナを起動しますが、それぞれのコンテナを立ち上げる度に、オプションを沢山つけてコマンドを実行するのではなく Docker 純正の Docker Compose というオーケストレーションツールを使用して 2 つのコンテナを起動します。

オーケストレーションとは、複数コンテナをひとまとめに管理することです。

ちなみに Docker Compose を使わずに docker run コマンドでコンテナを起動する場合は、

<WordPress コンテナ>

$ docker run –name wordpress –link mysql:mysql -p 8080:80 -v ~/docker_wordpress/wordpress:/var/www.html -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=password -d wordpress:4.5.3-apache

<MySQL コンテナ>

$ docker run -it –name mysql -v ~/docker_wordpress/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=password -d mysql:5.7.13

みたいな感じになり、さらにコンテナの起動順序も考慮する必要があります。MySQL コンテナを立ち上げてから WordPress コンテナを起動しないとエラーとなります。

とにかく大変で面倒。なので、Docker で何らかのコンテナを立ち上げる場合には、よほど単純な場合を除いて docker run ではなく Docker Compose のようなオーケストレーションツールを使います。


実際にコンテナを立ち上げる

いよいよ実際にコンテナを立ち上げてみます。まだ Docker をインストールしていない人は Docker をインストールしておいてください。

コンテナを立ち上げるには Compose ファイルを作成して簡単なコマンドを実行するだけです。

Compose ファイルの作成

好きな場所に、以下の内容で Compose ファイルを作成します。Compose ファイルは YAML フォーマットの単なるテキストファイルです。

ファイル名は必ず「docker-compose.yml」にしてください。また、YAML フォーマットではタブは使用禁止なので、インデントは半角スペースで。

なお、Compose ファイルは v1 形式v2 形式の2種類ありますが、今回は v1 形式です。



Compose ファイルの詳細は Compose File Reference をご覧ください。


コマンドを実行する

docker-compose.yml を作成したディレクトリに移動して以下のコマンンドを実行します。これだけで WordPress コンテナと MySQL コンテナが起動します。(起動順序なども Docker Compose がよしなにしてくれます。)

$ docker-compose up -d

しばらく経ってから WEB ブラウザで http://localhost:8080 にアクセスすると WordPress の初期設定画面が表示されます。

Docker WordPress Installation

以上で、Docker で WordPress を稼働させることができました。

ブラウザアクセスでエラーが出た場合でもしばらく待ってから再びアクセスするとちゃんと表示されることがあります。これは、コンテナ起動後にそれぞれのコンテナで初期化スクリプトが実行されているためです。


コンテナデータの永続化

docker-compose up -d すると、docker-compose.yml を作成したディレクトリに .data/wordpress と .data/mysql が作成されます。

前者に WordPress コンテナの WEB ドキュメントルート(/var/www.html)が、後者に MySQL コンテナの MySQL データ保存ディレクトリ(/var/lib/mysql)がマウントされます。

マウント場所を変更したい場合は docker-compose.yml の該当箇所(./data/wordpress と .data/mysql)を変更してから docker-compose up -d してください。

また、コンテナを停止/破棄しても作成されたディレクトリは削除されません。必要がなくなったら手動で削除してください。ただし、ディレクトリを削除した場合、再びコンテナを起動させた場合は、WordPress、MySQL コンテナ共に初期状態に戻りますのでご注意ください。


主な docker-compose コマンド

コンテナを停止する

docker-compose stop を実行すると、全て(今回の場合は、WordPress コンテナと MySQL コンテナ)のコンテナが停止します。


コンテナを破棄する

docker-compose rm を実行すると、全てのコンテナが破棄されます。コンテナを廃棄する場合は、事前にコンテナが停止している必要があります。


コンテナを停止して破棄する

docker-compose down を実行すると、起動中のコンテナがあればそれらを停止して、全てのコンテナを破棄します。

もう一度 WordPress コンテナと MySQL コンテナを立ち上げる

コンテナが停止はしているけど破棄していない場合は、docker-compose start で、コンテナを破棄している場合は、初めと同じ docker-compose up -d を実行するとコンテナが立ち上がります。

コンテナのログを見る

docker-compose logs を実行すると、全てのコンテナのログが表示されます。

その他のコマンド

その他の docker-compose コマンドの詳細は Compose Command-line Reference を参照してください。


まとめ

Docker では Compose ファイルを作成するだけで簡単に WordPress が立ち上がりました。

Mac で構築する WordPress 開発環境といえば MAMP が主流でしたが、最近は Vagrant による仮想環境が人気のです。

これからは Docker による環境構築が主流になるかもしれませんね。

でわでわ。








この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.