Docker公开不起作用

题:

我使用Docker和Aurelia创build了一个简单的网站。 该站点在Docker中运行,但不能从我的本地主机访问。 我做了什么:


创build容器

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集装箱docker,看看该网站是否正在运行:

docker exec -it 97f57c3d0da5 /bin/bash

看看它是否运行:

curl -i localhost:9000

概要:

HTTP / 1.1 200 OK

<!DOCTYPE html>

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

返回主机terminal:

exit

curl -i localhost:9000

curl:(7)无法连接到本地端口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"] 

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

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

如果你安装没有Kitematic的 Docker,这应该不是问题。