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から接続できます。
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に入れるようになりました。