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

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

ただいまの
回答率

90.50%

  • WordPress

    9090questions

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

  • Docker

    1080questions

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

  • docker-compose

    254questions

DockerでWordPress環境構築

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,913

motope

score 3

 dockerでWordPressを導入したい

下記ページを参考に
http://naremo.jp/2016/11/docker-wordpress/
Dockerを使ってWordPress環境を構築しようとしています

こちらのコマンドでコンテナの起動はできている様なのですが
$ docker-compose up -d

「http://localhost:8000」にアクセスしても
「ページを開けません」とエラーが表示されてしまいます

docker-compose.ymlも問題ない様なので
他に疑いがある部分がなくて困っております

こちらのコマンドでコンテナが意図通りに起動しているのは確認できています
$ docker ps

ポート8080ですとphpMyadminには接続できました
http://localhost:8080

マシン一覧が表示されないことが関係しているのでしょうか
$ docker-machine ls

 docker-compose.yml

version: '2'
services:
  db:
    image: mysql:5.7
    volumes:
      - "./.data/db:/var/lib/mysql"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    links:
      - db
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: wordpress

 バージョン情報

Mac
docker-compose version 1.18.0, build 8dd22a9

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

ポート番号確認してください。

$ ss -natl

以下のように8000番があると思います。

イメージ説明

以下のコマンドでIPアドレスを確認してください。

$ ip -4 a

コマンドを実行しているコンソールがdocker machineなので、上で確認したIPアドレスとポート番号を使用すればアクセスできるはずです。

【補足】

  • 利用環境がMacなので、Mac上の仮想マシンにLinux、仮想マシンのLinux上でdockerを動かす仕組みになっている
  • 質問者は仮想マシンのLinux上で操作を行っている
  • Macのブラウザでlocalhost:8000にアクセスしているので、dockerコンテナにアクセスできていない
  • 仮想マシンのLinux上でdocker-machine lsを実行しているので、マシン一覧は表示されない
  • Macのターミナルでdocker-machine lsを実行すれば、仮想マシンのLinuxが表示されるはず

【追記】

以下のようにコンテナを一旦停止して、-dなしで起動して正常に起動できているか確認してみてください。

$ docker stop
$ docker up

【追記2】

# dbコンテナでbash起動
$ docker-compose exec db bash

# MySQLログイン
$ mysql -u root -pwordpress

# ユーザ確認
mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| wordpress     | %         |  ←これがあればwordpressユーザは外部ホストから接続できるはず
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/24 12:51

    丁寧に説明いただき有難うございます
    私の場合はDocker for Macを使用しており
    仮想マシンのLinuxを意識せずに済む状態となっております

    そのため、仮想マシンのLinex上では操作をしておらず
    Macのターミナルから操作を行なっており
    こちらのコマンドはターミナル上で実行しております
    $ docker-machine ls

    Macではssコマンドがありませんので
    下記のコマンドでポート番号を確認しました

    $ sudo lsof -P -i:8000 -n
    Password:
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    vpnkit 449 ユーザー名 18u IPv4 0x37b059ddafbe313 0t0 TCP *:8000 (LISTEN)
    vpnkit 449 ユーザ名 19u IPv6 0x37b059dd935790b 0t0 TCP [::1]:8000 (LISTEN)

    恐らくIPアドレスは127.0.0.1だと思われるのですが
    同様のエラーが表示されてしまいました

    キャンセル

  • 2018/02/24 16:17

    $ docker-compose upですね

    試したところエラーが出ている様です
    $ docker-compose up
    Starting wordpress_db_1 ... done
    Starting wordpress_wordpress_1 ... done
    Attaching to wordpress_db_1, wordpress_wordpress_1
    db_1 | 2018-02-24T07:15:40.639203Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    db_1 | 2018-02-24T07:15:40.646092Z 0 [Note] mysqld (mysqld 5.7.21) starting as process 1 ...
    db_1 | 2018-02-24T07:15:40.650569Z 0 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
    db_1 | 2018-02-24T07:15:40.655862Z 0 [Note] InnoDB: PUNCH HOLE support available
    db_1 | 2018-02-24T07:15:40.655919Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    db_1 | 2018-02-24T07:15:40.655930Z 0 [Note] InnoDB: Uses event mutexes
    db_1 | 2018-02-24T07:15:40.655939Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
    db_1 | 2018-02-24T07:15:40.655979Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
    db_1 | 2018-02-24T07:15:40.656079Z 0 [Note] InnoDB: Using Linux native AIO
    db_1 | 2018-02-24T07:15:40.656975Z 0 [Note] InnoDB: Number of pools: 1
    db_1 | 2018-02-24T07:15:40.657492Z 0 [Note] InnoDB: Using CPU crc32 instructions
    db_1 | 2018-02-24T07:15:40.660958Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
    db_1 | 2018-02-24T07:15:40.667226Z 0 [Note] InnoDB: Completed initialization of buffer pool
    db_1 | 2018-02-24T07:15:40.668806Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
    db_1 | 2018-02-24T07:15:40.709461Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (2002) Connection refused
    db_1 | 2018-02-24T07:15:40.782507Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
    db_1 | 2018-02-24T07:15:40.783927Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
    db_1 | 2018-02-24T07:15:40.858203Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
    db_1 | 2018-02-24T07:15:40.863664Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
    db_1 | 2018-02-24T07:15:40.864054Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
    db_1 | 2018-02-24T07:15:40.865599Z 0 [Note] InnoDB: 5.7.21 started; log sequence number 2551739
    db_1 | 2018-02-24T07:15:40.866245Z 0 [Note] Plugin 'FEDERATED' is disabled.
    db_1 | 2018-02-24T07:15:40.866940Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
    db_1 | 2018-02-24T07:15:40.904109Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
    db_1 | 2018-02-24T07:15:40.913314Z 0 [Warning] CA certificate ca.pem is self signed.
    db_1 | 2018-02-24T07:15:40.916245Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
    db_1 | 2018-02-24T07:15:40.916730Z 0 [Note] IPv6 is available.
    db_1 | 2018-02-24T07:15:40.916916Z 0 [Note] - '::' resolves to '::';
    db_1 | 2018-02-24T07:15:40.917071Z 0 [Note] Server socket created on IP: '::'.
    db_1 | 2018-02-24T07:15:40.931694Z 0 [Note] InnoDB: Buffer pool(s) load completed at 180224 7:15:40
    db_1 | 2018-02-24T07:15:40.953693Z 0 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:40.954010Z 0 [Warning] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:40.954153Z 0 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:40.955019Z 0 [Warning] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:40.955188Z 0 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:40.956029Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:40.984131Z 0 [Warning] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:40.984387Z 0 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
    db_1 | 2018-02-24T07:15:41.204032Z 0 [Note] Event Scheduler: Loaded 0 events
    db_1 | 2018-02-24T07:15:41.204680Z 0 [Note] mysqld: ready for connections.
    db_1 | Version: '5.7.21' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1130) Host '172.21.0.3' is not allowed to connect to this MySQL server
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1130): Host '172.21.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1130) Host '172.21.0.3' is not allowed to connect to this MySQL server
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1130): Host '172.21.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1130): Host '172.21.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1130) Host '172.21.0.3' is not allowed to connect to this MySQL server
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1130): Host '172.21.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1130) Host '172.21.0.3' is not allowed to connect to this MySQL server
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1130): Host '172.21.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1130) Host '172.21.0.3' is not allowed to connect to this MySQL server
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1130): Host '172.21.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1130) Host '172.21.0.3' is not allowed to connect to this MySQL server
    wordpress_1 |
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1130): Host '172.21.0.3' is not allowed to connect to this MySQL server in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1130) Host '172.21.0.3' is not allowed to connect to this MySQL server

    キャンセル

  • 2018/02/24 21:45

    エラーメッセージを調べるとMySQLに接続してホストからの接続を拒否していることを示しているようですが、自分の環境では同じdocker-compose.ymlで問題なく起動できています。
    dockerのバージョンはいくつでしょうか?自分の環境は以下のとおりです。

    $ docker --version
    Docker version 17.12.0-ce, build c97c6d6

    キャンセル

  • 2018/02/25 00:00

    下記コマンドでユーザーを追加し
    $ CREATE USER wordpress;

    下記で権限を追加しました
    $ GRANT SELECT, INSERT, UPDATE ON * TO wordpress;

    こちらで確認したところuser:root, host:%も無かったので
    同様のコマンドでrootユーザーも追加しました

    mysql> select user , host from mysql.user;
    +---------------+-----------+
    | user | host |
    +---------------+-----------+
    | root | % |
    | wordpress | % |
    | mysql.session | localhost |
    | mysql.sys | localhost |
    | root | localhost |
    +---------------+-----------+


    その後コンテナを-d無しで再起動したのですが
    先ほどとは微妙に異なるエラーが発生しております
    wordpress_1 | Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root'@'172.21.0.3' (using password: YES) in Standard input code on line 22
    wordpress_1 |
    wordpress_1 | MySQL Connection Error: (1045) Access denied for user 'root'@'172.21.0.3' (using password: YES)


    dokcerのバーションはこちらになります
    $ docker --version
    Docker version 17.12.0-ce, build c97c6d6

    キャンセル

  • 2018/02/25 00:13 編集

    MySQLコンテナの最初の起動時に何らかのエラーがあってユーザができていない可能性が考えられます。
    以下の操作を行って最初からやり直してみてはどうでしょう。

    $ docker-compose down
    $ sudo rm -rf .data
    $ docker-compose up

    ※ホストの.dataディレクトリにデータベースファイルを保存するようになっているので、downだけではデータベースの再作成が実行されないです。

    キャンセル

  • 2018/02/25 22:10 編集

    いただいたコマンドでコンテナを再起動してみましたが
    同様のエラーが発生しました

    こちらのサイトを基にしてコンテナを作成することで
    WordPressの初期設定画面まで進むことができました
    https://www.kimurak.net/wordpress/wordpress/2505/

    根本的な解決に至らず悔やまれますが
    一旦このまま進めようと思います

    懇切丁寧にご返答頂きましてありがとうございました

    キャンセル

  • 2018/02/25 22:58

    質問欄に記載されているdocker-compose.ymlをコピペして動かしているので、MySQLのユーザ設定が異なることはないと思うのですが、どうなっているんでしょうね。
    お役に立てずに申し訳なし。

    キャンセル

0

そちらのdocker-compose.ymlで起動をしていないので、なんとも言えないのですが、docker-for-wordpressが以前作った環境なので、よろしければお使いください。

そちらの解説もこちらの記事で書いてありますので、合わせてご確認ください。
そのほか質問等ありましたら、お答えします!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/22 01:22

    同様のエラーでWordPressの画面が表示されませんでした
    hostsの設定でしょうか

    ```
    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting. Do not change this entry.
    ##
    127.0.0.1 localhost
    255.255.255.255 broadcasthost
    ::1 localhost
    ~
    ```

    キャンセル

同じタグがついた質問を見る

  • WordPress

    9090questions

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

  • Docker

    1080questions

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

  • docker-compose

    254questions