クイックスタート・ガイド:Docker Compose と Wordpress

Docker Compose を使えば、Docker コンテナで構築した WordPress の独立した環境を簡単に実行できます。このクイックスタート・ガイドでは、Compose のセットアップ方法と WordPress の実行方法を紹介します。事前に Compose のインストール が必要です。

プロジェクトの定義

  1. プロジェクト用の空のディレクトリを作成します。

覚えやすい名前のディレクトリを作成します。このディレクトリがアプリケーション・イメージの内容(コンテクスト)となるものです。ディレクトリには、イメージ構築に関するリソースのみ置くべきです。

プロジェクト用ディレクトリには docker-compose.yml ファイルを置きます。このファイル自身が wordpress プロジェクトの良いスタートを切ります。

  1. ディレクトリをプロジェクト用ディレクトリに変更します。

たとえば、ディレクトリ名が my_wordpress の場合は:

$ cd my-wordpress/
  1. 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分ほど必要な場合があるためです。

WordPress 言語選択 WordPress 初期設定