【发布时间】:2017-01-21 14:06:08
【问题描述】:
问题:
我使用 Docker 和 Aurelia 创建了一个简单的站点。该站点在 Docker 中运行,但无法从我的本地主机访问。我做了什么:
创建容器
docker build -t randy/node-web-app .
docker run -p 9000:9000 -d randy/node-web-app
97f57c3d0da5d03f53b4ba893fdb866ca528e10e6c4a1b310726e514d8957650
查看脚本是否运行:
docker logs 97f57c3d0da5
进入 docker 集装箱码头查看站点是否已启动:
docker exec -it 97f57c3d0da5 /bin/bash
查看是否运行:
curl -i localhost:9000
总结:
HTTP/1.1 200 正常
<!DOCTYPE html>
(我实际上看到了它应该返回的 HTML,但它太大了,无法在此处发布。)
返回主机终端:
exit
curl -i localhost:9000
curl: (7) 无法连接到 localhost 端口 9000:连接被拒绝
如何确保我可以从我的电脑访问该网站?在第一个命令中,我在 9000:9000 上设置了暴露,所以这应该不是问题。
Dockerfile:
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install -g aurelia-cli
RUN npm install
EXPOSE 9000
CMD ["npm", "start"]
【问题讨论】:
-
您是否仅在 127.0.0.1 上收听?
docker exec -it <container> netstat -an应该输出 0.0.0.0:9000 而不是 127.0.0.1:9000