Docker暴露不起作用

时间:2017-01-21 14:06:09

标签: node.js docker

问题:

我使用Docker和Aurelia创建了一个简单的网站。该站点在Docker中运行,但无法从我的localhost访问。我做了什么:

创建容器

docker build -t randy/node-web-app .

docker run -p 9000:9000 -d randy/node-web-app

  

97f57c3d0da5d03f53b4ba893fdb866ca528e10e6c4a1b310726e514d8957650

查看脚本是否已运行:

docker logs 97f57c3d0da5

  

应用程序可在以下位置:http://localhost:9000

进入码头集装箱码头查看该网站是否已启动:

docker exec -it 97f57c3d0da5 /bin/bash

看看它是否正常运行:

curl -i localhost:9000

摘要:

  

HTTP / 1.1 200确定

     

<!DOCTYPE html>

(我实际上看到它应该返回的HTML,但是这个太大了,不能在这里发布。)

返回主机终端:

exit

curl -i localhost:9000

  

卷曲:(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"]

1 个答案:

答案 0 :(得分:2)

我在部署此映像的计算机上使用了 Kitematic 而不是正常版本的Docker。 Kitematic 将docker镜像映射到(内部)IP地址,而不是主机的localhost。

我的回答是使用192.168.1.67作为IP而不是127.0.0.1

如果您在没有 Kitematic 的情况下安装Docker,这应该不是问题。