nginx Docker容器连接被拒绝

34

我在macOS上安装了Docker Toolbox,并按照Docker的简单教程学习部署Nginx

我执行了docker run并确认我的容器已被创建:

docker run --name mynginx1 -P -d nginx
docker ps
40001fc50719  nginx  "nginx -g 'daemon off"  23 minutes ago  Up 23 minutes  0.0.0.0:32770->80/tcp, 0.0.0.0:32769->443/tcp  mynginx1

然而,当我 curl http://localhost:32770 时,我收到了一个连接被拒绝的错误:

curl: (7) Failed to connect to localhost port 32770: Connection refused

我很难看出我可能错过了什么。在 macOS 上,我需要执行额外的步骤吗?


检查您的nginx日志和/或增加详细程度。如果我没记错的话,这是一个nginx问题,其中nginx正在尝试反向DNS查找或类似的操作。 - user2105103
4个回答

59
问题在于您的DOCKER_HOST没有设置为本地主机,因为您正在使用Docker Toolbox,所以需要使用docker-machine的IP地址: docker-machine ip default # 应返回您的IP地址。
有关更多信息,请参见Docker Toolbox文档

非常准确。谢谢,迈克尔。 - Jonathan
1
zsh:未找到命令:docker-machine。 - Snowcrash

3
如果您使用的是OS X 10.10.3 Yosemite或更新版本,并且正在使用Docker for Mac,则无需担心docker-machine、docker toolbox或DOCKER_HOST。
只需在运行命令中映射端口 local-port:container-port 即可。
docker run --name my-web  -p 8080:80

3
docker-machine ip default
xxx.docker.machine.ip

那么

curl http://xxx.docker.machine.ip:32770

0

3
我相信它是 docker.host.internal。此外,请在类似这样的回答中提供文档参考。 - Milan Markovic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接