[Tech#2]DockerでWordPressコンテナ作成

HomeBrewをインストールした前回記事から一週間経過しまして、いきなりDocker。いやあ、時代ですね。


この記事では、Dockerを使用してWordPressを動かします。

一度WordPressコンテナを作成すれば、置くだけで任意のサーバーの環境構築が簡単にできます。

以下が完了していることを前提にします。

  • HomeBrewのインストール

Dockerインストール

Dockerは、アプリケーションの実行環境を「コンテナ」としてパッケージ化するツールです。

  • Dockerをインストール
brew install --cask docker
  • Docker Desktopアプリがapplicationフォルダに配置されるので、クリックして開く
  • 規約を読んで、Acceptを押す

WordPressコンテナ作成

WordPressを運営するためにはMySQLなどのデータベースが必要なので、二つのコンテナを作成する必要があります。

  • Dockerイメージの取得

WordPressもMySQLも、Docker公式で用意されています。

docker pull wordpress

docker pull mysql
  • 複数のコンテナを接続するためのネットワークを作成
docker network create wordpress_network
  • MySQLのコンテナを起動
docker run -d --name wordpress_db \

    --network wordpress_network \

    -e MYSQL_ROOT_PASSWORD=my_root_password \

    -e MYSQL_DATABASE=wordpress \

    -e MYSQL_USER=my_user \

    -e MYSQL_PASSWORD=my_password \

    mysql:latest

my_root_password, my_user, my_passwordには、各自任意の文字を入れます。

  • WordPressの起動
docker run -d --name wordpress \

    --network wordpress_network \

    -p 8080:80 \

    -e WORDPRESS_DB_HOST=wordpress_db:3306 \

    -e WORDPRESS_DB_NAME=wordpress \

    -e WORDPRESS_DB_USER=my_user \

    -e WORDPRESS_DB_PASSWORD=my_password \

    wordpress:latest

my_user, my_passwordには、各自任意の文字を入れます。

  • ローカルホストでWordPressに接続

上記の例ではポート番号8080から接続できます。

http://localhost:8080/

docker-composeファイル

二つのコンテナを起動するのが面倒臭いため、ターミナルで一文書けばWordPressが起動できるようにします。

  • docker-compose.ymlファイルを作り、以下を書く
version: '3'
services:
  db:
    image: mysql:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: my_root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: my_user
      MYSQL_PASSWORD: my_password
    volumes:
      - db_data:/var/lib/mysql
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    restart: always
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: my_user
      WORDPRESS_DB_PASSWORD: my_password
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data:
  • ターミナルでdocker-compose.ymlファイルがある階層に移動して、以下のコマンドを入力
docker-compose up

これだけでhttp://localhost:8080/からwordpressに入れるようになりました。