AmazonLinux2にDockerでWordPress構築

WordPressの検証環境などを作成する時に、いちいちwebサーバ、php、DBをインストールするのは、面倒です。
Dockerを使ってサクッとWordPressを建てていきます。

今回紹介する方法は2つあります。

mysql5.7系とWordPress最新版を使って構築していきます。

まずは、EC2でAmazonLinux2を起動します。
起動したらsshしてください。

Dockerを使うためにいろいろ設定

Dockerをインストール

$ sudo yum -y update #まずはアップデート
$ sudo yum -y install docker
$ docker --version
Docker version 19.03.6-ce, build 369ce74

Dockerのバージョンが出ていれば、インストール成功です。

Dockerを起動

Dockerを起動から自動起動まで

$ sudo systemctl start docker #スタート
$ sudo systemctl enbale docker #自動起動

Dockerコマンドにsudoをいらなくする。

現時点だと、docker imageなどの、コマンドを使うと、Permission deniedになるので、いちいちsudoをつけるか、rootユーザになるしかないです。
ということで、sudoをいらなくします。

# dockerグループがなければ作る
$ sudo groupadd docker

# 現行ユーザをdockerグループに所属させる
$ sudo gpasswd -a $USER docker

# dockerデーモンを再起動する (CentOS7の場合)
$ sudo systemctl restart docker

# exitして再ログインすると反映される。
$ exit

コマンド参考

1つづつダウンロードして起動

mysqlとWordPressを個別にダウンロードする方法です。
面倒なうえに、1つづつ起動させないと、使えないので、あまり推奨はしませんが、なにかの時に使うかもしれないので。

以下を実行して、DockerでWordPressを起動させます。

docker pull mysql:5.7.25
docker pull wordpress
docker run --name mysql  -e MYSQL_ROOT_PASSWORD=Hogehoge@1234 -d mysql:5.7.25
docker run --name wordpress --link mysql:mysql -d -p 8080:80 wordpress

実行すると、WordPressが建てられています。
http://IPアドレス:8080にアクセスしてください。
あとはWordPressのインストールに従うだけです。

アクセス出来ないときは、セキュリティグループの設定を見直してください。
8080ポートが空いていない可能性があります。

Docker Composeを使う

こちらの方法がおそらく一般的です

まずは任意のディレクトリを作成して、その中に、docker-compose.ymlというファイルを作成します。

$ mkdir wordpress
$ cd wordpress
$ vim docker-compose.yml

docker-compose.ymlの中身は公式ページを参考にしました。
ポートを8000から80に変更しています。

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    ports:
      - "3306:3306"

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    ports:
      - "80:80"
    restart: always
volumes:
    db_data: {}

ファイルが作成できたら、docker-compose.ymlがあるディレクトリで以下を実行します。

$ docker-compose up -d

実行し起動に成功すると、WordPressが起動されます。

http://IPアドレスにアクセスしてみましょう
見慣れたWordPressのインストール画面が出てきます。
こちらもアクセス出来ないときは、セキュリティグループで80ポートが空いているか確認してください。

-dオプションをつけないと、バックグラウンドで起動しないので、注意が必要です。

docker-composeの主要コマンド

停止や再起動などの主要なコマンドです。

$ docker-compose stop #停止
$ docker-compose start #起動
$ docker-compose restart #再起動
$ docker-compose down #削除

おわりに

Dockerを使い始めてまだ日が浅いのですが、便利さには気づくことが出来ました。
AWSにはコンテナのサービスがECSやEKSがあるので、触れたら触ってみたいです。