尝试连接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.1
或localhost
)。 如果你绑定到0.0.0.0
来监听所有的接口,你会发现它可以从外部访问。