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の設定画面が表示されるので順番に設定していく。
Databse Hostはコンテナ名oursqlを指定。ブリッジネットワークdotnetの中では名前で解決してくれる。但し、デフォルトで元々存在するブリッジネットワークでは駄目らしい。
データ永続化の対策を行わずコンテナの廃棄とともにデータも失ってしまうが、どうせ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;