我的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:3000
(127.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:
我必须让tcp-port3000看起来像这样。但我不完全确定发生了什么。你能帮我理解一下吗?
请注意自己:我在ubuntu container中运行流星,我遇到了其他一些困难。
答案 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,但理论相同)