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

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

ただいまの
回答率

88.91%

【CentOS7】docker上のNodejsにアクセスできない

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,775

kanimaru

score 1000

題目の通りです。

Docker上に構築したNodejs+expressのWEBサーバにつながりません。

 確認したこと

前提:
・VPS
・CentOS7

  1. docker0のネットワークは 172.17.0.1
  2. nodejsでは 3000port を listenしている
  3. firewall-cmd --reload は行った
  4. ホスト上で curl 172.17.0.1:3000 では期待通り レスポンスが帰る
  5. ブラウザから VPSのip:3000 と接続するとタイムアウトする
  6. 同時に立てている nginx のサーバ(80番)にはブラウザ接続できる

 NodeJS index.jsの定義

var express = require('express');
var app = express();


var server = app.listen(3000, function(){
    console.log("Node.js is listening to PORT:" + server.address().port);
});

var photoList = [
    {
        id: "001",
        name: "photo001.jpg",
        type: "jpg",
        dataUrl: "http://localhost:3000/data/photo001.jpg"
    },{
        id: "002",
        name: "photo002.jpg",
        type: "jpg",
        dataUrl: "http://localhost:3000/data/photo002.jpg"
    }
]

app.get("/", function(req, res, next){
    res.json(photoList);
});                                                                                                                                                                               

 firewall-cmd --list-allの定義

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client http https ssh
  ports: 3000/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  sourceports: 
  icmp-blocks: 
  rich rules: 

 Docker のプロセス一覧

IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
node                "node index.js"          14 seconds ago      Up 14 seconds       0.0.0.0:3000->3000/tcp        docker_node_run_13
nginx:latest        "nginx -g 'daemon off"   54 minutes ago      Up 54 minutes       0.0.0.0:80->80/tcp, 443/tcp   docker_proxy_1
nginx:latest        "nginx -g 'daemon off"   9 days ago          Up 55 minutes       80/tcp, 443/tcp               docker_nginx_1
redis:3             "docker-entrypoint.sh"   9 days ago          Up 55 minutes       6379/tcp                      noderedis
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • szk.

    2017/04/27 16:11

    差し支えなければVPSはどこを使われていますか? またVPS側でポートを弾いているような設定はありませんか?

    キャンセル

  • kanimaru

    2017/04/27 16:14 編集

    szkさん 盲点でした。conohaの場合管理画面で設定必須でした・・・。ありがとうございます!
    すみません、szk.さんよろしければ回答にVPSの設定では?といただけますでしょうか!

    キャンセル

回答 2

+1

firewalldで3000番が空いてないのではないでしょうか。

sudo firewall-cmd --list-all

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/04/27 16:08 編集

    kunai さん
    以下のようにおこなってみましたが、繋がりませんでした。
    正直、何が原因なのかさっぱりです・・・。

    firewall-cmd --permanent --zone=public --add-port=3000/tcp
    Warning: ALREADY_ENABLED: 3000:tcp // 既に設定してあるエラー
    success

    firewall-cmd --reload

    キャンセル

  • 2017/04/27 16:19

    確かに問題ないですね。。
    後は、ホスト側の172.・・・のネットワークと、ブラウザを起動している端末の所属するネットワークの172.・・・が別だという可能性あたりでしょうか。。

    キャンセル

  • 2017/04/27 16:33

    kunaiさん

     ご回答ありがとうございます!

     szk.さんから追記依頼いただきましたが、契約しているVPSの設定で開放していませんでした・・・。

     kunaiさんも色々ありがとうございました!

    キャンセル

checkベストアンサー

0

#出来レースですいませんが、、;

VPS側の設定ではないでしょうか。
vps ポート解放で検索してみると、ハマった話が出てきます。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/04/27 16:50

    szk.さん

     ありがとうございます!ご指摘の通りでした。
    共感できるはまった話が見つかりました(笑

    キャンセル

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

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

関連した質問

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