无法与简单的Docker Node.js Web应用程序通信

杰森

我只是想同时学习Node.js和Docker。我有一个非常简单的Node.js应用程序,该应用程序侦听端口并返回一个字符串。在本地运行时,Node应用程序本身运行良好。我现在正在尝试使其在Docker容器中运行,但似乎无法达到。

这是我的Node应用程序:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

var count = 0;

var server = http.createServer(function(req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end("Here's the current value: " + count);
    console.log('Got a request: ', req.url);
    count++;
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});

我的Dockerfile:

FROM node:latest

MAINTAINER Jason

ENV PORT=3000

COPY . /var/www
WORKDIR /var/www

EXPOSE $PORT

ENTRYPOINT ["node", "app.js"]

我的构建命令:

docker build -t jason/node .

而我的运行命令:

docker run -p 3000:3000 jason/node

app.js文件和Dockerfile位于我运行命令的相同目录中。进行docker ps显示应用程序正在运行,但在浏览器中导航至127.0.0.1:3000时,我只是得到一个无法访问网站的错误。我还确认已将app.js正确添加到映像中,并且在运行后收到消息“服务器正在http://127.0.0.1:3000/运行”。

我想我缺少了一些非常简单的东西,有什么想法吗?

hostname在监听功能上忽略或使用“ 0.0.0.0”。做了server.listen(port, '0.0.0.0', () => { console.log(Server running..); });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使多个Node js dockerized应用程序与mongodb docker通信

无法运行docker node.js应用程序

通过本地网络在两个 node.js 应用程序之间进行简单通信

无法运行简单的 node.js 应用程序抛出错误:听 EACCES

Node.js Web 应用程序未在 Docker 堆栈中正常运行

Node.js Azure Web应用程序无法访问我的路线

无法将.tsx文件添加到Node.js Web应用程序项目

无法在 node.js Web 应用程序中显示 EJS 页面

为什么我无法运行我的node.js Express Web应用程序

简单的node.js应用程序控制流程

Shopify应用程序无法在Express Node JS中运行

Azure Webapp Node.js应用程序无法启动

无法在 Heroku 上部署 Node.js 应用程序

MongoDB无法在node.js应用程序中更新?

无法从我的Node.js应用程序连接到Cassandra Docker容器

Node.js应用程序无法使用Kubernetes连接到MongoDB Docker容器

无法在heroku上托管node.js应用程序。正在显示应用程序错误

为什么Node.js简单的HTTP服务器应用程序无法在服务器上运行?

延迟的工作node.js Web应用程序

如何构建Web应用程序node.js

Node.js 多个 Web 应用程序

使用websockets和node.js的Web应用程序

Node.js 无法为访问我的 Web/应用程序的访客找到唯一 ID

Node.js 应用程序无法在带有自定义容器的 Azure Web App 上启动

将Node.js Web应用程序打包为普通的桌面应用程序

允许 Node.js 应用程序与 Kubernetes 集群上的 Pod 通信

使用Node.js和Loki.js重新组织简单的应用程序

能够使用 docker-compose.yml 在容器和 redis 容器中启动 node js 应用程序,但无法访问应用程序

ES6 Set 在简单的 Express Node.js 应用程序中不起作用