我在OSX中安装了Docker Toolbox,我正在关注deploying Nginx上的Docker简单教程。
我已执行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
我很难看到我在这里错过的东西。鉴于我在OSX上,是否需要执行额外的步骤?
答案 0 :(得分:56)
问题是您的DOCKER_HOST
未设置为localhost,您需要使用docker-machine的IP地址,因为您使用的是Docker Toolbox:
docker-machine ip default
#应该返回您的IP地址。
有关详细信息,请参阅Docker Toolbox Docs。
答案 1 :(得分:3)
docker-machine ip default
xxx.docker.machine.ip
然后
curl http://xxx.docker.machine.ip:32770
答案 2 :(得分:2)
如果你在OS X 10.10.3 Yosemite或更新版本并使用Docker for Mac,你将不会担心docker-machine或docker工具箱或DOCKER_HOST。
只需在运行命令local-port:container-port
上映射端口docker run --name my-web -p 8080:80
答案 3 :(得分:0)
在Mac中,对于10以上的版本,您可以尝试使用“ docker.for.mac.host.internal”而不是“ localhost”
编辑:docker.for.mac.host.internal已过时,它们切换到host.docker.internal。 参考:https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds