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

Connection refused when try to connect http server in docker daemon container

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

那个镜像已经暴露了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" 网络服务器。

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

得到html.

但是,当我尝试在我的 mac 电脑上连接它时。它说 "Connection refused."

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 以监听所有接口,您应该会发现它可以从外部访问。