2015-09-29 85 views
1

我有一個服務器運行在本地主機:3000在我的碼頭集裝箱,但我無法從我的電腦訪問它。訪問服務器,在容器中的本地主機上運行?

我試圖讓這個回購工作在我的搬運工

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

所以,我有我的碼頭工人conatiner /圖像捉迷藏,然後我會克隆,回購

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

然後我做了一些安裝,按照回購指示

npm install && bower install 

然後我啓動服務器,它啓動IP:127.0.0.1: 3000

npm start 

> [email protected] 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 ::

我得到了使用您的建議和一點在我結束fiddlling的工作。

但基本上我已經在我的Oracle VM VirtualBox的經理如下 - boot2docker-VM - 設置 - 網絡 - 端口轉發規則:

enter image description here

我不得不在TCP-port3000看起來像這樣。但我不完全確定發生了什麼。您能否好好幫我理解這一點?

自我提醒:我在ubuntu container上得到了這個工作運行流星,我還有一些其他的困難。

回答

0

您需要用於Windows的map boot2ip端口。

窗口 - >端口@ boot2ip VBOX外部IP - >端口@ VM - >端口@碼頭

如果虛擬機關閉,VBoxManage modifyvm 「boot2docker-VM」 --natpf1「TCP-port3000, TCP ,, 3000,3000" ;

如果vm正在運行,VBoxManage controlvm「boot2docker -vm」natpf1「tcp-port3000,tcp ,, 3000,,3000」;

(我使用的是Mac,但理論相同)

+0

當我在運行容器時執行'-p 3000:3000'時,我還沒有做過嗎? – HattrickNZ

+0

不,這只是使vm的端口可見,如果它不在vbox中運行,那麼你就完成了。 – pinxue

+0

對不起,但是是不是,是的? – HattrickNZ

相關問題