我正在使用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.1
或localhost
)。如果改为绑定(bind)0.0.0.0
来监听所有接口(interface),则应该从外部访问它。