+-

我有一个正在运行的nginx容器:#docker run –name mynginx1 -P -d nginx;
并通过docker ps得到它的PORT信息:0.0.0.0:32769-> 80 / tcp,0.0.0.0:32768-> 443 / tcp
然后我可以从容器中获得响应(id:c30991a04b2f):
> docker exec -i -t c3099 bash
> curl http:// localhost =>返回默认的index.html页面内容,它的工作原理
但是,当我在容器外部制作卷曲http:// localhost:32769时,我得到了这个:
curl:(7)无法连接到localhost端口32769:连接被拒绝
我在带有docker版本1.9.0的mac上运行; nginx最新
有谁知道是什么原因造成的?有帮助吗?谢谢
最佳答案
如果您是On OSX,则可能正在为docker环境使用VirtualBox VM.
确保你的实际主机(mac)有forwarded your port 32769,以便从localhost可以看到该端口.
这适用于旧的boot2docker或新的docker机器.
VBoxManage controlvm "boot2docker-vm" --natpf1 "tcp-port32769 ,tcp,,32769,,32769"
VBoxManage controlvm "boot2docker-vm" --natpf1 "udp-port32769 ,udp,,32769,,$32769
(controlvm如果VM正在运行,则modifyvm是VM已停止)
(将vm的名称替换为“boot2docker-vm”:请参阅docker-machine ls)
我建议不要使用-P,而是使用静态端口映射-p xxx:80 -p yyy:443.
这样,您可以使用固定值执行一次端口转发.
当然,您可以通过docker-machine ip vmname直接访问VM
curl http://$(docker-machine ip vmname):32769
点击查看更多相关文章
转载注明原文:docker nginx容器没有收到来自外部的请求,连接被拒绝 - 乐贴网