2017-09-07 5 views
1

Je démarre mon serveur NodeJs sur un conteneur. mais je ne peux pas l'accès à ce serveur dans mon navigateurConteneur Docker, démarrage de Nodejs Server

le serveur démarre sur localhost:8585 mais lorsque je tente d'y accéder sur mon navigateur, je reçois GET http://localhost:8585/ net::ERR_CONNECTION_RESET

ce qui est mal à cela?

ceci est mon fichier 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; 

l'image en cours d'exécution avec

course docker -v quelque part -it: quelque part -p 8585: 8585 dockerImage test --name

+0

s'il vous plaît mettez à jour votre question en ajoutant comment vous exécutez votre conteneur docker et le dockerfile – whites11

+0

Veuillez poster votre fichier docker et aussi le fichier serveur principal que vous utilisez pour démarrer le serveur –

+0

Nous ne sommes pas intéressés par le code express, mais le fichier Docker et comment l'exécutez-vous – mshaaban

Répondre

0

Le serveur démarre à l'intérieur du conteneur et est isolé du reste du monde. Vous devrez probablement exposer le port 8585 de l'intérieur de votre conteneur au monde extérieur. Vous pouvez le faire via le p flag-docker run comme ceci:

docker run -p localhost:8555:8585 

Vous devez également EXPOSE ce port dans le Dockerfile.

+0

le problème était lié aux ports que j'ai utilisés, le port du serveur et le port du conteneur doivent être les mêmes, merci pour l'aide –

+1

@ Saeed.At ils peuvent également être différents. Vous pouvez donc avoir le même port à l'intérieur du conteneur, mais un autre à l'extérieur en fonction de l'emplacement du conteneur, des autres ports utilisés, etc. Vous pouvez utiliser 'docker run -p localhost: 8585: 10000' pour exposer le port interne «8585» comme «10000» à l'extérieur. –