質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

2542閲覧

dockerのwordpress, mysql環境構築でdbが作成されない

S.Nakagawa255

総合スコア20

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/05/05 02:45

前提・実現したいこと

CentOSにDockerをインストールし、docker hubのwordpress、mysqlのイメージを使ってwordpress環境を構築練習をしています。
最新のwordpress、mysql(Version8系)では認証プラグインの不整合によりエラーとなるため、mysqlは5.7.27を使用しています。
(参考にしたURL:https://www.netmarvs.com/archives/3369)

発生している問題・エラーメッセージ

wordpressのURLにアクセスしたとき以下のエラーが発生してwordpressのDBが作成できません。以下を想定していますが、どのような切り分けをすればよいでしょうか。

  1. mysqlコンテナ起動
  2. wordpressコンテナ起動
  3. wordpressコンテナがmysqlコンテナにアクセスしてDB作成指示を出す
  4. ユーザがwordpressのURL(http://<VPSのIP>/wordpress/)にアクセスすると初期設定画面が起動する

しかし現状は以下のエラー画面が表示されDBが作成されません。

Unknown database 'wordpress'

イメージ説明

バージョンなど

ホストOS:サクラVPSにCentOSをインストール

bash

1$ cat /etc/redhat-release 2CentOS Linux release 7.9.2009 (Core)

docker

bash

1$ sudo docker -v 2Docker version 1.13.1, build 7d71120/1.13.1

dockerイメージ

bash

1$ sudo docker images 2REPOSITORY TAG IMAGE ID CREATED SIZE 3docker.io/wordpress latest 7fda6c241024 3 days ago 551 MB 4docker.io/mysql 5.7.27 383867b75fd2 20 months ago 373 MB

wordpressのイメージ内のwordpressバージョン

$wp_version = '5.7.1';

試したこと

mysqlコンテナを起動します。

$ sudo docker run --name mysql5.7.27 -e MYSQL_ROOT_PASSWORD=P@ssw0rd -d mysql:5.7.27 f61cc77d32f2232f8935278377124335c8bf36646950b21f3dce36f97d5fb73c $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f61cc77d32f2 mysql:5.7.27 "docker-entrypoint..." 6 seconds ago Up 5 seconds 3306/tcp, 33060/tcp mysql5.7.27

Wordpressコンテナを起動します。

$ sudo docker run --name mysite --link mysql5.7.27:mysql -p 80:80 -e WORDPRESS_DB_PASSWORD=P@ssw0rd -e WORDPRESS_DEBUG=true ―d wordpress

ブラウザからwordpressのURL(http://<VPSのIP>/wordpress/)にアクセスします。
イメージ説明

ユーザ名で拒否されたということなので、ユーザ名をmysqlコンテナでパスワードを設定したrootに指定してwordpressコンテナを再起動します。

bash

1$ sudo docker rm <先ほど起動したwordpressのコンテナID> 2$ sudo docker run --name mysite --link mysql5.7.27:mysql -p 80:80 -e WORDPRESS_DB_PASSWORD=P@ssw0rd -e WORDPRESS_DEBUG=true -e WORDPRESS_DB_USER=root wordpress

wordpressのURL(http://<VPSのIP>/wordpress/)にアクセス
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Wordpress の Docker イメージは、デフォルトで wordpress という名前のデータベースを探しにいきます。

これを回避するのであれば、MySQL の Docker イメージで、デフォルトで作成されている「mysql」という名前のデータベースを使うのが一番手っ取り早い方法です。

bash

1sudo docker run --name mysite --link mysql5.7.27:mysql -p 80:80 \ 2 -e WORDPRESS_DB_USER=root \ 3 -e WORDPRESS_DB_PASSWORD=P@ssw0rd \ 4 -e WORDPRESS_DB_NAME=mysql \ 5 -e WORDPRESS_DEBUG=true \ 6 -d wordpress

ただ、一般的に mysql のデータベースは管理用の用途として、一般的な用途としては分けた方がよく、その場合は、あらかじめ wordpress などのデータベースを作成のうえ、接続を試みられたほうがよいように思います。

投稿2021/05/05 05:15

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

S.Nakagawa255

2021/05/05 06:00

ご回答の方法でうまくいきました。 また、デフォルトデータベースmysqlを使わない方法、たとえばwordpressコンテナのデフォルトデータベース名wordpressで構築するには、mysqlコンテナ起動時にMYSQL_DATABASE=wordpressを指定してあげれば同様に構築できることも確認できました。 $ sudo docker run --name mysql5.7.27 -e MYSQL_ROOT_PASSWORD=P@ssw0rd -e MYSQL_DATABASE=wordpress -d mysql:5.7.27 $ sudo docker run --name mysite --link mysql5.7.27:mysql -p 80:80 -e WORDPRESS_DB_PASSWORD=P@ssw0rd -e WORDPRESS_DB_USER=root -d wordpress ⇒ブラウザで http://<VPSのIPアドレス>/ へアクセスすると、セットアップ開始される。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問