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

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

ただいまの
回答率

88.23%

Vagrant/DockerでWordPressを作りたいのですが「このページは動作していません」が返されます

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 508

Macで作業をしております。
DesktopにVagrantフォルダを作成し

vagrant up

vagrant ssh

としております。
その後

docker pull mysql

docker pull wordpress

docker run --name mariadb -e MYSQL_ROOT_PASSWORD=mariadb -d mariadb

docker run --name wordpress --link mariadb:mariadb -d -p 8080:80 wordpress


とすると

docker ps


コマンドでは

status up

されているのは確認できるのですが、

http://localhost:8080/

で確認すると動作していない状態が確認できます。
Dockerもvagrantもこれから勉強を始めていく段階なので、全くの初心者の質問で恐縮なのですが、
なにが原因でこうなるのかご教示頂ければありがたいです。

ちなみに

docker ps -a
で状態を確認すると

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                  NAMES
************        wordpress:latest    "docker-entrypoint.s   7 minutes ago       Up 7 minutes        0.0.0.0:8080->80/tcp   wordpress           
************        mariadb:latest      "docker-entrypoint.s   12 minutes ago      Up 12 minutes       3306/tcp               mariadb    

となっております。

よろしくおねがいします

■追記
ご回答を頂いたあとに追記させて頂きました。

sudo docker run -d -it --name test-mysql -e MYSQL_ROOT_PASSWORD=password mysql

sudo docker run -d -it --name test-wordpress --link test-mysql:mysql -p 8080:80 wordpress

とし、 

sudo docker ps -a

を入力すると以下が表示されます

vagrant@ubuntu:~$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                  NAMES
************        wordpress:latest    "docker-entrypoint.s   9 seconds ago       Up 9 seconds        0.0.0.0:8080->80/tcp   test-wordpress      
************        mysql:latest        "docker-entrypoint.s   49 seconds ago      Up 49 seconds       3306/tcp, 33060/tcp    test-mysql 

その後、

sudo systemctl stop firewalld


とすると

sudo: systemctl: command not found

と返されます。

また

docker images


とすると

wordpress,mariadb,mysql,centos(すべてlatest)となっているのですが現在動いているモノ以外で

docker run


させることが必要なのか...煮詰まっています。

最後に頂いたアドバイスを元にVagrantfileは

config.vm.network "private_network", ip: "192.168.33.10"


(config.vm.networkの元々行頭にあった#は削除しました)

■追々記 ご参考になるかわからないのですが...
Vagrant haltすると

Connection to 127.0.0.1 closed.


とターミナルに表示されます。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

お使いのPC上のブラウザでhttp://localhost:8080/とアクセスしていますか?
そうだとしたら、この場合はPCに対してアクセスすることになり、Vagrant上たてたvm上にアクセス出来ていない状態かと思います。

vagrant sshをしてvmのログインした状態で、curl localhost:8080をhtmlのレスポンスが返されるんじゃないかと思います。

であれば、dockerの起動は問題ないので、

vagrantのvmにIPアドレス(192.168.33.10とか)を振って、vmのファイヤーウォールを切ると(8080ポートをオープンにする)、お使いのPCからアクセスできるかと思います。

IPを振るのはVagrantfileで可能です。
vmのファイヤーウォールを切るのはvmのOSによって異なりますが、centos7とかを使用している場合、

sudo systemctl stop firewalld

で切れます。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2020/04/18 21:11

    BEKKOさま
    ご回答ありがとうございます。

    頂いた回答でdockerの起動は問題ないので…と記載頂き、少し元気づけられました。

    curl localhost:8080をターミナルから入力した所、<h1>Error establishing a database connection</h1>
    というメッセージが返されているようです。

    頂いたアドバイスをもとに行ったこと、それでも解決できないことを記載してみました。
    改めてご教示いただければ大変ありがたいです。
    よろしくおねがいします

    キャンセル

  • 2020/04/18 21:25

    いえいえ。

    整理すると問題となっている箇所は2点ですね。

    1. 現在dockerの立ち上げはうまくいっているが、wordpressからdockerで起動したdbに接続出来ていない

    2. PCから(ちなみにホストOSと言う) 192.168.33.10にアクセス出来ない。



    1に関しては、
    wordpressに設定しているDBの認証情報(user, password)が間違っているかもしれないということと、
    wordpressのコンテナからmysqlのコンテナの3306ポートにアクセス出来ていない。ということが考えられます。

    後者の方は設定が難しいと思います。以下記事とか参考にしてください。難しいようであればdocker linkとか、コンテナ間接続とかで調べてみてください。
    https://knowledge.sakura.ad.jp/16082/


    2に関しては、
    systemctl コマンドがないとのことですが、Vagrantファイルに書かれているOSは何でしょうか?
    そのOSによってファイヤーウォールの切り方が異なります。systemctlはcentos7移行でのファイヤーウォール設定のコマンドです。

    お使いのVMのOSを調べて、そのOSでのファイヤーウォールの切り方を調べれば、ホストOSからアクセス可能になると思います(ブラウザから192.168.33.10にアクセスできる)。

    キャンセル

  • 2020/04/20 09:07

    BEKKOさま
    おかげさまにて問題を解消することができました。
    昨日もお礼コメント入力したはずだったのですが、消えてしまっていたので改めてコメントさせて頂きます。
    >Vagrantファイルに書かれているOSは何でしょうか?
    とございましたので改めて'ubuntu'だったことを確認し、ufwにてポートを開放、MySQLのバージョンを'latest'ではなく5.7にすることでWordPressのインストール画面までたどり着くことができました。

    今度はdockerで落としてきたWordPresの内容をローカルで操作するためには今回の操作内容とは別に.ymlファイルをいじったり、バインドというのが必要なようなので改めて勉強していこうと思います。

    この度はありがとうございます。

    キャンセル

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

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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