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,这应该不是问题。