I've installed Docker Toolbox in macOS and I'm following Docker's simple tutorial on deploying Nginx .
I've executed docker run
and confirmed that my container has been created:
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
however when I curl http://localhost:32770
, I get a connection refused error:
curl: (7) Failed to connect to localhost port 32770: Connection refused
I'm struggling to see what I could have missed here. Is there an extra step I need to perform, in light of me being on macOS?
The issue is that your DOCKER_HOST
is not set to localhost, you will need to use the IP address of your docker-machine, since you are using Docker Toolbox:
docker-machine ip default
# should return your IP address.
SeeDocker Toolbox Docs for more information.
docker-machine ip default
xxx.docker.machine.ip
Then
curl http://xxx.docker.machine.ip:32770
If you on OS X 10.10.3 Yosemite or newer and using Docker for Mac, you will not have docker-machine or docker toolbox or DOCKER_HOST to worry about.
Just map the port on run command local-port:container-port
docker run --name my-web -p 8080:80
In Mac for versions above 10, you can try using "docker.for.mac.host.internal" instead of "localhost"
EDIT: docker.for.mac.host.internal is deprecated, they switched to host.docker.internal. Reference: https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.