Dockerで単純なExpressサーバーを実行しようとしていますが、ルートにアクセスできません

ueeieiie

ノードを含む単純なコンテナーを実行しようとすると、追加し.listen(port, log)ログが取得されますが、ブラウザーでアクセスできません

Dockerは初めてなので、何かが足りないかもしれません。

最初に実行docker build -t my-node-app .してイメージを作成します。

それから私は走ります docker run -it --rm -name myapp -p 3000:80 my-node-app

次にサーバーが実行され、コールバックで追加したログが表示されます。 app.listen(port ,cb)

localhost:3000でも開こうとすると何も出ません。

Dockerを使用せずに自分のマシンでローカルに実行すると、正常に動作します。

またdocker inspect myapp、で見つけたIPアドレスを使用してURLにアクセスしようとしましたが、うまくいきませんでした。

Dockerfile:

FROM node:4-onbuild
EXPOSE 80

ノードindex.js:

const express = require('express');

const app = express();
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => {
    console.log('hello')
    res.send('it works!');
});

app.listen(PORT, () => {
    console.log(`${process.env.NODE_ENV}server is running on port ${PORT} on ${process.platform}`);
});
zero298

-pスイッチの構文は次のとおり$HOSTPORT:$CONTAINERPORTです。

これを見ると、ホストポート3000ゲストポート80にマッピングしていますただし、ノードサーバーは80をリッスンしていません。3000でリッスンしています。

次のいずれかを実行できます。

  • SeeスイッチPORTを使用し環境変数を80に設定します-e "PORT=80"ENV
  • ノードにデフォルトで3000ではなく80でリッスンさせる
  • -p 3000:3000適切なゲストポートを使用するように使用してください

さらに、EXPOSE 80Dockerfile設定しましたが、まだ適切なポートを公開していません。サーバーコードによると、ノードはデフォルトで3000をリッスンします。

また、も使用しているため-p 123:456EXPOSE設定を上書きできる可能性があります。参照:Dockerfileイメージのデフォルトのオーバーライド

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Webサーバーをセットアップしようとしていますが、外部ネットワークからアクセスできません

分類Dev

私は自分のサーバーを実行しようとしているときにプログラムを持っていますそれは私がDjangoにかなり慣れていないので非常に単純なサーバーです

分類Dev

mixを使用してインストールしようとしていますが、(Mix)URLエラーにアクセスできませんでした

分類Dev

仕事用のWebアプリをローカルで実行していますが、正しいサイトにアクセスできません

分類Dev

「完全なREPLはサポートされていません。単純なシェルにフォールバックします」-php職人のいじくり回しを使用しようとしたときにLaravelでエラーが発生しました

分類Dev

byte []をサーバーに送信しようとすると、Xamarinで「disposedObjectにアクセスできません」という例外が発生します

分類Dev

マルチスレッドサーバーは、複数のクライアントが接続しようとすると、「破棄されたオブジェクトにアクセスできません」というエラーを表示します

分類Dev

Apache サーバーを実行しているときに、私の IP を使用して人々が私の Web ページにアクセスできないようにする必要がありますか?

分類Dev

dockerとnodeJSを使用して単純なアプリをビルドするときに、エラー「npm ERR!がパスまたはパッケージからノード名を検出できませんでした」を修正するにはどうすればよいですか?

分類Dev

TCPクライアントをサーバーに接続してサーバー側に送信するにはどうすればよいですか?エラーが発生し、コードを正常に実行できません。

分類Dev

単純なTensorFlowコード例を実行しているときに、GraphcoreIPUデバイスのいずれにも接続できませんでした

分類Dev

DockerでVaultを実行しているときにVaultUIにアクセスできません:404ページが見つかりません

分類Dev

Bonjourを使用してデモアプリを実行しようとしていますが、同じホストで実行されているサーバーを検出できません

分類Dev

PHP組み込みWebサーバーを使用してローカルホストで単純なCGIスクリプトを実行できますか?

分類Dev

scanfを実行しようとしていますが、別の値を入力しないと値にアクセスできません

分類Dev

単純なhttpサーバーにアクセスできません

分類Dev

単体テストでは、アプリケーションサーバーで実行していない場合にデータソースをどのようにセットアップする必要がありますか?

分類Dev

すでに別のイメージを使用しているDockerコンテナで非常に単純なphp-apacheサーバーをセットアップして実行するにはどうすればよいですか?

分類Dev

jarを実行しようとすると、この「jarfileにアクセスできません」エラーが発生するのはなぜですか?

分類Dev

デバッグのためにiPhoneでアプリケーションを実行しようとすると、XCodeで「アプリケーションをインストールできません」というエラーが発生します

分類Dev

ローカルホストのデータベースにアクセスしようとしたときに「エラー:サーバーはSSL接続をサポートしていません」を修正するにはどうすればよいですか?

分類Dev

Doctrine移行でカスタムSQLを実行するときに、「移行は実行されましたが、SQLステートメントが生成されませんでした」というメッセージが表示されないようにします。

分類Dev

TomcatがApacheサーバーを介して実行されている場合、Tomcat8マネージャーにアクセスできません

分類Dev

サブディレクトリ(rx)にグローバルな閲覧可能なアクセス許可を設定しますが、所有者とグループメンバー以外のすべてのユーザーがファイルにアクセスできないようにします

分類Dev

Dockerを使用して、1台のサーバーで実行されている複数のアプリケーションにクライアントがアクセスできるようにするにはどうすればよいですか?

分類Dev

デュアルブートを実行しようとしましたが、WindowsまたはUbuntuにアクセスできなくなりました

分類Dev

辞書にインデックスを付けようとしていますが、方法がわかりません。「レート」でデータにアクセスしようとしていますが、そこにアクセスできないようです

分類Dev

ServiceStack.Redisクライアントバージョン4.0.44を使用してリモートサーバーからredisにアクセスすると、「Redisセンチネルが利用できませんでした」というメッセージが表示されます

分類Dev

ログキャプチャが妥当な時間内に開始されませんでした-リモートappiumサーバーでiOSテストを実行しようとしたときにエラーが発生しました-appiumログが添付されています

Related 関連記事

  1. 1

    Webサーバーをセットアップしようとしていますが、外部ネットワークからアクセスできません

  2. 2

    私は自分のサーバーを実行しようとしているときにプログラムを持っていますそれは私がDjangoにかなり慣れていないので非常に単純なサーバーです

  3. 3

    mixを使用してインストールしようとしていますが、(Mix)URLエラーにアクセスできませんでした

  4. 4

    仕事用のWebアプリをローカルで実行していますが、正しいサイトにアクセスできません

  5. 5

    「完全なREPLはサポートされていません。単純なシェルにフォールバックします」-php職人のいじくり回しを使用しようとしたときにLaravelでエラーが発生しました

  6. 6

    byte []をサーバーに送信しようとすると、Xamarinで「disposedObjectにアクセスできません」という例外が発生します

  7. 7

    マルチスレッドサーバーは、複数のクライアントが接続しようとすると、「破棄されたオブジェクトにアクセスできません」というエラーを表示します

  8. 8

    Apache サーバーを実行しているときに、私の IP を使用して人々が私の Web ページにアクセスできないようにする必要がありますか?

  9. 9

    dockerとnodeJSを使用して単純なアプリをビルドするときに、エラー「npm ERR!がパスまたはパッケージからノード名を検出できませんでした」を修正するにはどうすればよいですか?

  10. 10

    TCPクライアントをサーバーに接続してサーバー側に送信するにはどうすればよいですか?エラーが発生し、コードを正常に実行できません。

  11. 11

    単純なTensorFlowコード例を実行しているときに、GraphcoreIPUデバイスのいずれにも接続できませんでした

  12. 12

    DockerでVaultを実行しているときにVaultUIにアクセスできません:404ページが見つかりません

  13. 13

    Bonjourを使用してデモアプリを実行しようとしていますが、同じホストで実行されているサーバーを検出できません

  14. 14

    PHP組み込みWebサーバーを使用してローカルホストで単純なCGIスクリプトを実行できますか?

  15. 15

    scanfを実行しようとしていますが、別の値を入力しないと値にアクセスできません

  16. 16

    単純なhttpサーバーにアクセスできません

  17. 17

    単体テストでは、アプリケーションサーバーで実行していない場合にデータソースをどのようにセットアップする必要がありますか?

  18. 18

    すでに別のイメージを使用しているDockerコンテナで非常に単純なphp-apacheサーバーをセットアップして実行するにはどうすればよいですか?

  19. 19

    jarを実行しようとすると、この「jarfileにアクセスできません」エラーが発生するのはなぜですか?

  20. 20

    デバッグのためにiPhoneでアプリケーションを実行しようとすると、XCodeで「アプリケーションをインストールできません」というエラーが発生します

  21. 21

    ローカルホストのデータベースにアクセスしようとしたときに「エラー:サーバーはSSL接続をサポートしていません」を修正するにはどうすればよいですか?

  22. 22

    Doctrine移行でカスタムSQLを実行するときに、「移行は実行されましたが、SQLステートメントが生成されませんでした」というメッセージが表示されないようにします。

  23. 23

    TomcatがApacheサーバーを介して実行されている場合、Tomcat8マネージャーにアクセスできません

  24. 24

    サブディレクトリ(rx)にグローバルな閲覧可能なアクセス許可を設定しますが、所有者とグループメンバー以外のすべてのユーザーがファイルにアクセスできないようにします

  25. 25

    Dockerを使用して、1台のサーバーで実行されている複数のアプリケーションにクライアントがアクセスできるようにするにはどうすればよいですか?

  26. 26

    デュアルブートを実行しようとしましたが、WindowsまたはUbuntuにアクセスできなくなりました

  27. 27

    辞書にインデックスを付けようとしていますが、方法がわかりません。「レート」でデータにアクセスしようとしていますが、そこにアクセスできないようです

  28. 28

    ServiceStack.Redisクライアントバージョン4.0.44を使用してリモートサーバーからredisにアクセスすると、「Redisセンチネルが利用できませんでした」というメッセージが表示されます

  29. 29

    ログキャプチャが妥当な時間内に開始されませんでした-リモートappiumサーバーでiOSテストを実行しようとしたときにエラーが発生しました-appiumログが添付されています

ホットタグ

アーカイブ