クィックスタート: Compose と WordPress
読む時間の目安: 2 分
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.9" 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 volumes: - wordpress_data:/var/www/html ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: {} wordpress_data: {}
メモ
Docker ボリューム
db_data
とwordpress_data
は、WordPress 上から実行されるデータ更新をデータベースに保存します。 インストール済のテーマやプラグインについても同様です。 詳細は Docker ボリューム を参照してください。WordPress のマルチサイトは、ポート
80
と443
上においてのみ動作します。
プロジェクトのビルド
プロジェクトディレクトリ上にて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 Desktop for Mac や Docker Desktop for Windows を利用している場合、IP アドレスとしてはhttp://localhost
を利用し、ウェブブラウザーからhttp://localhost:8000
にアクセスしてください。
シャットダウンとクリーンアップ
docker-compose down
コマンドを実行すると、コンテナーとデフォルトネットワークが削除されます。
ただし WordPress データベースは残ります。
docker-compose down --volumes
コマンドを実行すると、コンテナーとデフォルトネットワーク、さらに WordPress データベースも削除します。
その他の Compose ドキュメント
- Docker Compose 概要
- Docker Compose のインストール
- Docker Compose をはじめよう
- Docker Compose コマンドラインリファレンス
- Compose ファイルリファレンス
- Awesome Compose サンプル