docker-composeを使ってWordPress環境を一気に立ち上げる

 

はじめに

はてなブログから、レンタルサーバに引っ越すにあたり、事前に、Windows上で、WordPress環境を立ち上げ移行作業を行いました。
作ったWordPressの環境一式を本番サイトに移動します。
その時の備忘録です。

docker-composeとは

docker-composeは、複数のコンテナを使う Docker アプリケーションを、定義・実行するツールです。
WordPress環境は、、WordPress本体を実行するのdockerイメージとデータベース(mysql)のdockerイメージの2つのdockerイメージを連携して実行する必要があります。
dockerコマンドを使う場合、これら2つのコンテナを個々に、起動等の制御が必要ですが、docker-composeを使用することにより、これらのコンテナをまとめて管理することができます。
docker-composeは、dockerをインストールすると、一緒にインストールされていますので、追加インストールは不要です。

docker-compose.ymlファイルの準備

docker-composeを利用するには、docker-compose.ymlファイルを用意します。
今回は、WordPressのコンテナと、mysql:5.7のコンテナを起動する定義を作成しました。
mysqlのデータベース名、ユーザ名、パスワードは、コンテナ間で一致させてください。
また、docker-compose.ymlファイルと同じディレクトリに、"sitedata"というディレクトリを作成しておいてください。
WordPressのコンテナ内の"/var/www/html/"が、このホルダにマッピングされ、作成したWordPressのsiteデータ一式がこの中に作成されます。

version: '3.1'

services:

  wordpress:
    image: wordpress
    container_name: "wordpress"
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
        - ./sitedata:/var/www/html/
    depends_on:
        - db
  db:
    image: mysql:5.7
    container_name: "wp-mysql"
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'

# https://docs.docker.com/compose/compose-file/#volume-configuration-reference
volumes:
    sitedata:
         driver: local

 

docker-composeによるサービス開始

Docker Quick Terminalから、作成した、docker-compose.ymlファイルがあるディレクトリに移動します。

以下のコマンドで、WordPress, mysqlのコンテナが起動します。
(初回はイメージのダウンロードから行われます。)

docker-compose up -d

起動が成功している場合は、ブラウザから以下のURLにアクセスしてください。

http://ipaddress:8080/

成功すれば以下のWordPressの初期設定画面が表示されるはずです。
file
ipadressは、以下のコマンドで、ログを確認し、WordPressがサービスしている、ipadressとportを確認してください。

docker-compose logs

ちなみに、サービスの起動に失敗する場合は、"-d"をつけずに、upしてみてください。
起動時にエラー出ている場合に確認がしやすくなります。

コンテナをまとめて停止するには、以下を実行してください。

docker-compose stop

また、コンテナをまとめて削除する場合は、以下を実行してください。

docker-compose rm

最後に

docker-composeにより、WordPressのような複数のコンテナをつかった環境を管理するのが楽になります。
一度、docker-compose.ymlを作成してしまえば、中身を忘れても、起動と停止はできますので。

またよろしくです。