DockerのWordpressを使ってみたときのメモ

wordpressを使える環境をdockerで準備したときのメモ

mysqlのコンテナとwordpressのコンテナを同じbridgeのネットワークに入れておくと名前で解決できるらしいので、dotnetという名の紛らわしいというか場違いな名前でまずnetwokを作成

PS >docker network create dotnet
02244c0b535c7fb5a2d59867b74c84748388c7de0ebde131854e3f985501bf23

PS >docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
f93a625bb8d2   bridge    bridge    local
02244c0b535c   dotnet    bridge    local
88d0ccb78169   host      host      local
1154612f28cc   none      null      local

ちゃんと作成されているようだ。
データベースの設定はコンテナを起動した後に泥臭く手作業で準備しようと思い、
MYSQLのdockerを起動するときに環境変数を何も指定しないで起動させようとしたら駄目だった。
どうもMYSQL_ROOT_PASSWORDは必須のようだったので、これだけ指定して起動した。
(以下を参照)
DockerのMySQLイメージ起動時に渡す環境変数 - Qiita

PS >docker container run -d --name oursql --network dotnet -e MYSQL_ROOT_PASSWORD=admin mysql
32927bf6ba488d7d8285d4955d6878756d2ae65bd3b1856aab6bb06b29cb9dc7

ネットワークにdotnetを指定し、mysqlのコンテナの名前は少し変えてoursqlとした。
次にコンテナoursqlのターミナルを起動して

PS >docker container exec -it 32927bf6ba48 /bin/sh

"mysql -u root -p"で環境変数で指定したパスワードを入力し、MySQLに入ってからユーザscottを作成する。

create user scott@'%' identified by 'tiger';

scottは他のコンテナからアクセスするのでどのホストからでもアクセスできるようにlocalhostではなく'%'とした。
【参考(覚え書き):use mysql;してからユーザの設定状況を確認したとき】

mysql> select User,Host from user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| scott            | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)

データベースwordpressを作成し、scottにはデータベースwordpressに対する全権限を付与。

create database wordpress;
grant all on wordpress.* to scott@'%';

そしてwordpressのコンテナを起動する。

PS >docker container run -d --network dotnet -p 8094:80 --name wordpress4 wordpress
090d145c7c1868013f99181e7a266dd0ececa397586c85aa72fc5308d0e8556d

localhostのポート8094に接続するとWordpressの設定画面が表示されるので順番に設定していく。

wp1
wp2
wp3

Databse Hostはコンテナ名oursqlを指定。ブリッジネットワークdotnetの中では名前で解決してくれる。但し、デフォルトで元々存在するブリッジネットワークでは駄目らしい。

wp4
wp5
wp6
wp7

データ永続化の対策を行わずコンテナの廃棄とともにデータも失ってしまうが、どうせWordpressの使い方に慣れるまでの少しの間と軽く考えていた。しかしWordpressの触りはじめると、結構、難しいと感じ始め「慣れるまで」を諦めて環境を準備したことで自己満足することにした。

2022/07/12
久々に試そうとしたがパスワードを失念してしまったためログインできなかった。ので、パスワードを強制的にリセット。

mysql> select id,user_login,user_pass from wp_users;
+----+------------+------------------------------------+
| id | user_login | user_pass                          |
+----+------------+------------------------------------+
|  1 | someone    | $P$B6zmHmRDKJscCxufkCfnFBpnWxa0G7/ |
+----+------------+------------------------------------+
1 row in set (0.00 sec)

mysql> update wp_users set user_pass = MD5('abc') where id = 1;
wp-login.php