コンテナ2つでWordPressの環境構築をする
■WordPressコンテナ
・WordPress本体
・Apache
・PHPの実行環境
■MySQLコンテナ
必要なコマンド
コンテナ同士をつなぐネットワーク作成
データベースの設定とコンテナ
ネットワーク作成
docker network create ネットワーク名
ネットワーク確認
docker network ls
Mysqlのコンテナ
docker run --name コンテナ名 -dit --net=ネットワーク名 \
-e MYSQL_ROOT_PASSWORD=MySQLのrootパスワード \
-e MYSQL_DATABASE=データベース名 \
-e MYSQL_USER=MYSQLのユーザー名 \
-e MYSQL_PASSWORD=MySQLのパスワード \
mysql \
--character-set-server=文字コード \
--collation-server=照合順序 \
--default-authentication-plugin=認証方式
WordPressコンテナ
docker run --name コンテナ名 -dit --net=ネットワーク名 \
-p ポートの設定 \
-e WORDPRESS_DB_HOST=データベースのコンテナ名 \
-e WORDPRESS_DB_NAME=データベース名 \
-e WORDPRESS_DB_USER=データベースのユーザー名 \
-e WORDPRESS_DB_PASSWORD=データベースのパスワード \
wordpress
下記の値は合わせておく必要がある
network | mysql | wordpress |
---|---|---|
--name |
WORDPRESS_DB_HOST | |
network |
--net |
--net |
MYSQL_DATABASE | WORDPRESS_DB_NAME | |
MYSQL_USER | WORDPRESS_DB_USER | |
MYSQL_PASSWORD | WORDPRESS_DB_PASSWORD |
DB接続
docker exec -it ホスト名(MySQLコンテナ名) mysql -u root -p
※認証方式
MySQL5からMySQL8に変わる時、外部のソフトウェアからMySQLへ接続する認証方式が変更された。
よって新認証方式に対応しているソフトウェアが少ない。そのため認証方式を古いものに変更する必要がある。
それか古いバージョンのMySQL5などを使用するというこで対応も可能。
WordPressやphpMyAdminなども新認証方式に対応していない。
バージョン指定方法は「mysql:8.1」などにする。
小数点がない場合は「mysql:8」MySQL8の最新バージョンを取得する
今回実行したのは下記の3つのコマンド
docker network create wordpress000net1
docker run --name mysql000ex11 -dit --net=wordpress000net1 \
-e MYSQL_ROOT_PASSWORD=myrootpass \
-e MYSQL_DATABASE=wordpress000db \
-e MYSQL_USER=wordpress000kun \
-e MYSQL_PASSWORD=wkunpass \
mysql \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--default-authentication-plugin=mysql_native_password
docker run --name wordpress000ex12 -dit --net=wordpress000net1 \
-p 8085:80 \
-e WORDPRESS_DB_HOST=mysql000ex11 \
-e WORDPRESS_DB_NAME=wordpress000db \
-e WORDPRESS_DB_USER=wordpress000kun \
-e WORDPRESS_DB_PASSWORD=wkunpass \
wordpress
ブラウザでアクセスして表示がでればOK
http://localhost:8085/