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

回到顶部