How to access web page served by nginx web server running in docker container How to access web page served by nginx web server running in docker container nginx nginx

How to access web page served by nginx web server running in docker container


You shouldn't be trying to hit the IP address of the container, you should be using the IP address of the host machine.

What you are missing is the mapping of the port of the host machine to the port of the container running the nginx server.

Assuming that you want to use port 8888 on the host machine, you need a parameter such as this to map the ports:

docker run ... -p 8888:8888 ...

Then you should be able to access you server at http://<HOST_MACHINE_IP>:8888

EDIT: There is another gotcha if you are running on a Mac. To use Docker on a Mac it's common to use boot2docker but boot2docker adds in another layer. You need determine the IP address of the boot2docker container and use that instead of localhost to access nginx.

$ boot2docker ipThe VM's Host only interface IP address is: <X.X.X.X>$ wget http://<X.X.X.X>:8888...Connecting to <X.X.X.X>:8888... connected.HTTP request sent, awaiting response... 200 OK

Reference: https://viget.com/extend/how-to-use-docker-on-os-x-the-missing-guide

EDIT: ... or with docker-machine the equivalent command would be docker-machine ip <machine-name> where <machine-name> is likely to be "default".


You may need to check if your container is running:

  • docker ps ( you should have an active container)

If no container is active:

  1. docker run -p 80:80 -it /bin/bash
  2. you will then be on your image terminal
  3. start nginx - sudo service nginx start
  4. ctrl p + ctrl q to quit docker without exiting the container
  5. if you are on mac and using boot2docker you cannot use localhost to check your running nginx
  6. so use boot2docker ip
  7. browse using the boot2docker ip