DockerでWordpressを構築する手順
Step | 説明 |
1 | Dockerネットワークを作成する |
2 | MySQL用コンテナを作成する |
3 | WordPress用コンテナを作成する |
4 | ブラウザからWordpressにアクセスする |
Dockerネットワークを作成する
$ docker network create wordpress1
ddd3883441974f1bd642b54048080793691a0153f728381042388c4bd0e57d5d
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
1e93e3d38617 bridge bridge local
ddc254dca608 host host local
290f9a26e1e0 none null local
ddd388344197 wordpress1 bridge local
MySQL用コンテナを作成する
$ docker run --name mysql1 -dit --net=wordpress1 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wpdb -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=wppass mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca5a5db340b1 mysql "docker-entrypoint.s…" 7 seconds ago Up 4 seconds 3306/tcp, 33060/tcp mysql1
オプション・引数の意味は次の通りです。
-e MYSQL_ROOT_PASSWORD=root | |
-e MYSQL_DATABASE=wpdb | |
-e MYSQL_USER=wpuser | |
-e MYSQL_PASSWORD=wppass | |
--character-set-server=utf8mb4 | |
--collation-server=utf8mb4_unicode_ci | |
--default-authentication-plugin=mysql_native_password |
これらのオプションは覚える必要はありません。
Web上の記事を見たり、公式サイトを参照して調べながら使っていくものです
https://hub.docker.com/_/mysql
※docker run コマンドのイメージ名「mysql」を「mariadb」に変更することで、mariadbも選択できます。
WordPress用コンテナを作成する
$ docker run --name wordpress1 -dit --net=wordpress1 -p:8085:80 -e WORDPRESS_DB_HOST=mysql1 -e WORDPRESS_DB_NAME=wpdb -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=wppass wordpress
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
630118e396eb wordpress "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:8085->80/tcp, :::8085->80/tcp wordpress1
c54319547aa4 mysql "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 3306/tcp, 33060/tcp mysql1
オプション・引数の意味は次の通りです。
-e WORDPRESS_DB_HOST=mysql1 | |
-e WORDPRESS_DB_NAME=wpdb | |
-e WORDPRESS_DB_USER=wpuser | |
-e WORDPRESS_DB_PASSWORD=wppass |
wordpressのオプション・引数についてはこちらです。
https://hub.docker.com/_/wordpress
ブラウザからWordpressにアクセスする
ここまでで準備ができています。
後は wordpress の -p:8085:80 で指定したポートへブラウザからアクセスしてみましょう。
上記の例では、http://localhost:8085/ です。
WordPressのインストール画面が表示されました。
この通り、投稿もちゃんとできます。
docker stop でmysqlとwordpressの両コンテナを停止した後、再度docker startでコンテナを起動したときも、データは残っています。
簡単で恐ろしいですね!!!
参考文献
この本で入門しました。めちゃくちゃわかりやすいです。