docker nginx容器未从外部接收请求,连接被拒绝
我有一个运行Nginx的容器:# docker run --name mynginx1 -P -d nginx
;
并通过docker ps
以下方式获取了其端口信息: 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
页面内容,它可以正常工作
但是,当我curl http://localhost:32769
在容器的外部制作时,得到了以下信息:
curl: (7) failed to connect to localhost port 32769: Connection refused
我在docker版本1.9.0的Mac上运行;Nginx最新
有谁知道是什么原因造成的?有什么帮助吗?谢谢
回答:
如果在OSX上,则可能是在docker环境中使用VirtualBox VM。
确保已将端口32769转发到您的实际主机(mac),以便该端口从本地主机可见。
这对于旧的boot2docker或新的docker计算机均有效。
VBoxManage controlvm "boot2docker-vm" --natpf1 "tcp-port32769 ,tcp,,32769,,32769"VBoxManage controlvm "boot2docker-vm" --natpf1 "udp-port32769 ,udp,,32769,,$32769
(controlvm
如果虚拟机正在运行,modifyvm
则该虚拟机是否已停止)
(用boot2docker-vm
您的虚拟机名称替换“ ”,请参见docker-machine ls
)
我建议不要使用-P
,而是使用静态端口映射-p xxx:80 -p yyy:443
。
这样,您可以使用固定值一次执行该端口转发。
当然,您可以直接通过 docker-machine ip vmname
curl http://$(docker-machine ip vmname):32769
以上是 docker nginx容器未从外部接收请求,连接被拒绝 的全部内容, 来源链接: utcz.com/qa/432941.html