クイックスタート・ガイド:Docker Compose と Wordpress¶
Docker Compose を使えば、Docker コンテナで構築した WordPress の独立した環境を簡単に実行できます。このクイックスタート・ガイドでは、Compose のセットアップ方法と WordPress の実行方法を紹介します。事前に Compose のインストール が必要です。
プロジェクトの定義¶
- プロジェクト用の空のディレクトリを作成します。
覚えやすい名前のディレクトリを作成します。このディレクトリがアプリケーション・イメージの内容(コンテクスト)となるものです。ディレクトリには、イメージ構築に関するリソースのみ置くべきです。
プロジェクト用ディレクトリには docker-compose.yml
ファイルを置きます。このファイル自身が wordpress プロジェクトの良いスタートを切ります。
- ディレクトリをプロジェクト用ディレクトリに変更します。
たとえば、ディレクトリ名が my_wordpress
の場合は:
$ cd my-wordpress/
docker-compose.yml
ファイルを作成します。このファイルはwordpress
ブログとMySQL
インスタンスを個別に起動します。MySQL
インスタンスはデータを保持するためにボリュームをマウントします。
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
注釈
docker-compose.yml
があるプロジェクトのディレクトリ内に ./.data/db
ディレクトリを自動的に作成します。wordpress がデータベースに対して更新したあらゆるデータは、このディレクトリで保持します。
プロジェクトの構築¶
あとは、プロジェクト用ディレクトリで docker-compose up -d
を実行します。
必要なイメージを取得し、wordpress とデータベースのコンテナを起動します。次のように画面に表示します。
$ docker-compose up -d
Creating network "my_wordpress_default" with the default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
efd26ecc9548: Pull complete
a3ed95caeb02: Pull complete
...
Digest: sha256:34a0aca88e85f2efa5edff1cea77cf5d3147ad93545dbec99cfe705b03c520de
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
efd26ecc9548: Already exists
a3ed95caeb02: Pull complete
589a9d9a7c64: Pull complete
...
Digest: sha256:ed28506ae44d5def89075fd5c01456610cd6c64006addfe5210b8c675881aff6
Status: Downloaded newer image for wordpress:latest
Creating my_wordpress_db_1
Creating my_wordpress_wordpress_1
ウェブ・ブラウザで WordPress を開く¶
Docker Machine を使っている場合は、 docker-machine ip マシン名
を実行するとマシンの IP アドレスを表示します。そしてブラウザで http://マシンのIP:8000
を開きます。
この時点では WordPress は Docker ホスト上のポート 8000 で動作しています。そして、WordPress の管理者にとっては「有名な5分間のインストール」を行うだけです。
注釈
WordPress のサイトはポート 8000 で即時利用可能になりません。なぜなら、初回読み込み時にはコンテナの初期化のために2~3分ほど必要な場合があるためです。