【超初心者向け】DockerでWordPressをサクッと構築

DockerでWordPressを構築してみたかったんや!
2021.03.31

こんにちは!コンサル部のinomaso(@inomasosan)です。

絶賛コンテナ勉強中なのですが、CI/CDやIaC、ECSやEKS等で学ぶことが多くて目が回りますよね。

最近、社内の経験者に勉強方法を聞いてみたのですが、初めはそれぞれ分けて勉強した方が良いとのことでした。
ということで、まずはDockerのチュートリアルからはじめてみることにしました。

やること

  • Docker公式ドキュメントのDocker ComposeとWordPressのクイックスタート

この記事で学べること

  • DockerでWordPress環境構築

環境

今回実行した環境は以下の通りです。

  • macOS Catalina 10.15.7
  • Docker Desktop 3.1.0

コード

任意のディレクトリにdocker-compose.ymlを作成。 チュートリアルに従い、以下のコードを保存。

version: '3'

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
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

DBのデータ保存のためにvolumesを指定していますね。
また、depends_onでコンテナの依存関係を定義しているので、この例ですとdbを起動してから、wordpressが起動される設定となります。

やってみた

1. docker-composeを実行

docker-compose.ymlを作成したディレクトリに移動して、実行していきます。

% docker-compose up -d
Creating network "my_wordpress_default" with the default driver
Creating volume "my_wordpress_db_data" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
75646c2fb410: Pull complete
878f3d947b10: Pull complete
1a2dd2f75b04: Pull complete
8faaceef2b94: Pull complete
b77c8c445ec2: Pull complete
074029aeaa5f: Pull complete
5a1122545c6c: Pull complete
0539e5d96e0a: Pull complete
5bf3befab801: Pull complete
a8ba39ab191f: Pull complete
d472d441f7e9: Pull complete
Digest: sha256:dce7f54b744d09e95525ff8c767c5ba1c6a5a54d04c208fa55e3052ded713453
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
ac2522cc7269: Pull complete
5b2eaf06d6cf: Pull complete
353d7ace7314: Pull complete
37e4975b15a3: Pull complete
f54c541ce8ea: Pull complete
4c5f70c3328b: Pull complete
7721d733906f: Pull complete
15a49155542c: Pull complete
a365bc9f6bef: Pull complete
60a4e47167a5: Pull complete
24b65d3ed44f: Pull complete
0c1e61773eb8: Pull complete
c29159fb4bcc: Pull complete
26fb7e4f01ad: Pull complete
9c202d0c403c: Pull complete
0c3ce41d4ac1: Pull complete
9c5aa7a09350: Pull complete
474825f9ea74: Pull complete
94703b17fe04: Pull complete
73c68a1f3a28: Pull complete
5c2036f3fca4: Pull complete
Digest: sha256:3b74157167e8fb284e108d32293be85c9e7baed7d1f5161dbdd34d75df1bdf1e
Status: Downloaded newer image for wordpress:latest
Creating my_wordpress_db_1 ... done
Creating my_wordpress_wordpress_1 ... done

2. ブラウザで確認してみる

URLにhttp://localhost:8000を入力すると、WordPressの設定画面が表示されることが確認できました。

3. 後片付け

DBのデータ保存用のボリュームを含めて、環境を全て削除します。

% docker-compose down --volumes
Stopping my_wordpress_wordpress_1 ... done
Stopping my_wordpress_db_1        ... done
Removing my_wordpress_wordpress_1 ... done
Removing my_wordpress_db_1        ... done
Removing network my_wordpress_default
Removing volume my_wordpress_db_data

まとめ

EC2等でWordPressを苦労して構築したことがある身としては、docker-compose.ymlをひとつ書くだけで実行できるのは素直に感動します。
こういった便利な技術を課題解決のために身に付けられたらという願いを胸に、継続して勉強していこうと思います

この記事が、どなたかのお役に立てば幸いです。それでは!