发现用docker搭建node.js服务时,向外提供的端口是8990,但是搭建成功后,发现访问'localhost:8990'或'127.0.0.1:8990' 都无法访问
dockerfile 配置如下:FROM node:6.10.3WORKDIR /data1/serverRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime# replace this with your application's default portEXPOSE 8990VOLUME ["/data1"]
app.js
var express = require('express');// Constantsvar PORT = 8990;// Appvar 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这个地址上
苦逼啊,居然这个原因,搞了很久。