2017-09-07 45 views
1

我在容器上启动我的NodeJs服务器。但我不能访问此服务器在我的浏览Docker容器,启动Nodejs服务器

在服务器上localhost:8585开始,但是当我尝试访问它在我的浏览器,我收到GET http://localhost:8585/ net::ERR_CONNECTION_RESET

有什么不对呢?

这是我的server.js文件

var express = require('express'), 
    path = require('path'), 
    config = require('./config.js'); 

var app = new express(); 

app.use('/', express.static(path.join(__dirname, '../client'))); 

app.get('/', function (req, res) { 
    res.send('Hello World!') 
    }); 

    app.get('*', function(req, res) { 
     console.log('!!!!!!!!-------_!!!!!!!!!!!!!'); 
    }) 

function start() { 
app.listen(config.port, function() { 
    console.log('myProject listening on port ' + config.port + '!'); 
    }); 
} 

exports.start = start; 

运行图像与

搬运工运行 - 它-v地方:地方-p 8585:8585 --name测试dockerImage

+0

请更新您的问题将如何运行你的码头工人的容器,且使用 – whites11

+0

请发表您的泊坞窗文件dockerfile还您用于启动服务器 –

+0

我们不感兴趣的快件代码本身的主服务器上的文件,但Docker文件和你如何运行它 – mshaaban

回答

0

服务器在容器内部启动,并与世界其他地方隔离。您很可能需要将容器内部的端口8585暴露给外部世界。您可以通过p flag这样做是为了docker run像这样:

docker run -p localhost:8555:8585 

您还需要EXPOSE在Dockerfile该端口。

+0

问题是有关我使用的端口,服务器端口和容器端口应该是相同的,谢谢你的帮助 –

+1

@ Saeed.At他们也可以不同。所以你可以在容器中有相同的端口,但是在外部有一个不同的端口,这取决于容器的运行位置,还有其他的端口在使用等等。你可以使用'docker run -p localhost:8585:10000'来公开内部端口'8585'外部为'10000'。 –