访问服务器,运行在容器中的localhost上?

时间:2015-09-29 00:18:50

标签: git boot2docker

我的docker容器中有一台运行在localhost:3000的服务器,但我无法从我的PC上访问它。

我想让这个仓库在我的码头工作

https://github.com/tamaspiros/advanced-chat

所以我有我的docker conatiner / image runnning然后我克隆了repo

git clone https://github.com/tamaspiros/advanced-chat

然后按照repo

中的说明进行一些安装
npm install && bower install

然后我启动服务器,它从IP:127.0.0.1:3000开始

npm start

> chat@0.0.1 start /usr/share/nginx/html/web/git/advanced-chat
> node server.js

   info  - socket.io started
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Express server listening on  IP: 127.0.0.1 and port 3000

然后我尝试通过访问firefox http://192.168.59.103:3000127.0.0.1:3000因boot2docker而无效)并在设置中选择no proxy来查看服务器。但我看不到它我看到无法连接。

我的容器端口映射为-p 3000:3000 我的boot2docker ip是'192.168.59.103' $ boot2docker ip 192.168.59.103

我原本以为我可以在192.168.59.103:3000看到服务器,但不知道为什么我不能?也许是我缺乏知识产权或其他什么?任何人都可以建议吗?

注意我正在使用boot2docker运行windows7。

EDIT1 ::

我的工作是根据你的建议和我的一点点摆弄。

但基本上我的Oracle VM VirtualBox Manager中有以下内容 - boot2docker-vm - settings - Network - Port Forwarding Rules:

enter image description here

我必须让tcp-port3000看起来像这样。但我不完全确定发生了什么。你能帮我理解一下吗?

请注意自己:我在ubuntu container中运行流星,我遇到了其他一些困难。

1 个答案:

答案 0 :(得分:0)

你需要为windows启动map boot2ip端口。

windows - > port @ boot2ip vbox external ip - > port @ vm - >端口@坞

如果vm关闭,VBoxManage modifyvm" boot2docker-vm" --natpf1" tcp-port3000,tcp ,, 3000,,3000&#34 ;;

如果vm正在运行,VBoxManage controlvm" boot2docker-vm" natpf1" tcp-port3000,tcp ,, 3000,,3000&#34 ;;

(我使用Mac,但理论相同)