クィックスタート: Compose と WordPress¶
Docker Compose を使うと、Docker コンテナとして生成される独立した環境内にて WordPress を簡単に実現することができます。 このクイックスタート・ガイドは、Docker Compose を使った WordPress の設定と実行方法を示すものです。 はじめるには Compose のインストール が必要です。
プロジェクトの定義¶
プロジェクト用の空のディレクトリを生成します。
ディレクトリ名は覚えやすいものにします。 このディレクトリはアプリケーションイメージのコンテキストディレクトリとなります。 このディレクトリには、イメージをビルドするために必要となるものだけを含めるようにします。
このプロジェクトディレクトリに
docker-compose.yml
ファイルを置きます。 このファイルそのものが、WordPress プロジェクトを開始するための内容をすべて含むものとなります。注釈
このファイルの拡張子は
.yml
と.yaml
のどちらでも構いません。 いずれであっても動作します。プロジェクトディレクトリに移動します。
そのディレクトリをたとえば
my_wordpress
としていた場合、以下のようになります。cd my_wordpress/
docker-compose.yml
ファイルを生成します。 このファイルがWordPress
ブログを起動します。 それとは別に、データ保存のためにボリュームマウントを使ったMySQL
インスタンスを生成します。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 ボリューム
db_data
は、WordPress 上から実行されるデータ更新をデータベースに保存します。 詳細は Docker ボリューム を参照してください。 - WordPress のマルチサイトは、ポート
80
と443
上においてのみ動作します。
- Docker ボリューム
プロジェクトの構築¶
プロジェクトディレクトリ上にて docker-compose up -d
を実行します。
これはデタッチモードにより docker-compose up を実行し、不足する Docker イメージがあれば取得します。 そして 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 のマルチサイトは、ポート 80
と 443
上においてのみ動作します。
0.0.0.0
の 80
や 443
(あるいは設定したポート) へのバインディングに関するエラーが発生したら、WordPress に割り当てたポートが、すでに別のサービスによって利用されていることが考えられます。
ウェブ・ブラウザ上での WordPress の起動¶
この時点で WordPress は Docker ホスト上のポート 8000
番を使って稼動しています。
そこで WordPress の管理者となって「よく知られた 5 分でインストール」を行うことができます。
注釈
WordPress サイトはポート 8000
を使って稼動していると述べましたが、即座に利用できるわけではありません。
コンテナは初期化を行っている最中であり、初回の読み込み処理には数分の時間を要するからです。
Docker Machine を利用している場合は、docker-machine ip MACHINE_VM
を実行してマシンの IP アドレスを取得できます。
そこでウェブ・ブラウザから http://MACHINE_VM_IP:8000
にアクセスしてください。
Docker Desktop for Mac や Docker Desktop for Windows を利用している場合、IP アドレスとしては http://localhost
を利用し、ウェブ・ブラウザから http://localhost:8000
にアクセスしてください。
シャットダウンとクリーンアップ¶
docker-compose down コマンドを実行すると、コンテナとデフォルトネットワークが削除されます。 ただし WordPress データベースは残ります。
docker-compose down --volumes
コマンドを実行すると、コンテナとデフォルトネットワーク、さらに WordPress データベースも削除します。