尝试连接docker守护程序容器中的http服务器时拒绝连接

我正在使用boot2docker。 我在守护进程模式下运行一个镜像,在3000端口启动grunt服务器。这是我用来启动它的命令。

该图像已经暴露3000端口

docker run -d -P --name dummy image_name grunt server docker ps 3af4ba19c539 image_name:latest "grunt server" 54 minutes ago Up 54 minutes 0.0.0.0:45000->3000/tcp dummy 

然后运行到相同的容器中以“curl”Web服务器。

 docker exec -it 3af4ba19c539 /bin/bash curl localhost:3000 

它得到的HTML。

但是,当我尝试在我的Mac PC中连接它。 它说“连接被拒绝”。

 curl $(boot2docker ip):45000 //curl: (7) Failed connect to 192.168.59.103:45000; Connection refused 

我尝试通过使用VBoxManage来解决这个问题,但它也不能正常工作

 VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port45000,tcp,,45000,,45000" 

我可以知道如何解决这个问题。 提前谢谢了

我需要确定应用程序的来源,但是我敢打赌,你已经绑定到你的应用程序中的本地回送接口( 127.0.0.1localhost )。 如果你绑定到0.0.0.0来监听所有的接口,你会发现它可以从外部访问。