简体   繁体   中英

Connection refused on nginx docker container

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM