Connection refused on nginx docker container

2020-05-24 20:33发布

问题:

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?

回答1:

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.

See Docker Toolbox Docs for more information.



回答2:

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

Then

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


回答3:

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