我刚开始在mac上使用docker,我无法弄清楚为什么端口没有暴露在localhost上。
这是我的Dockerfile:
FROM node:alpine
RUN apk add --update curl
RUN mkdir -p /home/app
WORKDIR /home/app
COPY . /home/app
RUN cd /home/app; npm install express
EXPOSE 8080
CMD ["node", "app.js"]
以下是我的示例应用:
var app = require("express")();
app.get('/', (req, res) => {
res.send({'lorem': "ipsum"});
});
app.listen(8080);
console.log('listening on 8080');
建成后,我做了码头运行:
docker run -d -p 8080:8080 some/test
我检查了docker日志,一切正常。我在容器上运行docker exec并尝试“卷曲”内部端口,它工作正常。但是我无法在localhost上打开它。
出了什么问题,我错过了什么吗?