我正在使用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"

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

最佳答案

我需要确定您的应用程序的来源,但是我敢打赌您已经绑定(bind)到应用程序中的本地回送接口(interface)(127.0.0.1localhost)。如果改为绑定(bind)0.0.0.0来监听所有接口(interface),则应该从外部访问它。

07-24 13:04