发现用docker搭建node.js服务时,向外提供的端口是8990,但是搭建成功后,发现访问'localhost:8990'或'127.0.0.1:8990' 都无法访问
dockerfile 配置如下:
FROM node:6.10.3
WORKDIR /data1/server
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# replace this with your application's default port
EXPOSE 8990
VOLUME ["/data1"]
app.js
var express = require('express');
// Constants
var PORT = 8990;
// App
var app = express();
app.get('/', function (req, res) {
res.send('Hello world\n');
});
app.listen(PORT);
docker run -it -p 8990:8990 /bin/bash
进去后执行
npm start
成功运行了,但是发现根本无法访问'localhost:8990'或'127.0.0.1:8990' 经过一番努力,发现是绑定 127.0.0.1的问题
127.0.0.1是一个回环地址,只能本机访问,外部无法访问的。所以express要监听到0.0.0.0这个地址上
苦逼啊,居然这个原因,搞了很久。