Created a apache webserver as Docker container but want to access it on windows os browser as localhost.
I can access the webserver with boot2docker private ip address which is 192.168.59.103 but would like to access the webserver as localhost i.e 127.0.0.1.
Following is my Docker Container setup
Running Boot2docker on Oracle VM
Exposed ports : "EXPOSE 80 443" in docker file
Command used to create Docker File :
docker run --net=host --name=webserver1 -v /home/data:/data/www/www.samplewebserber.com -v `password`:/scripts -d folder/serverfolder /scripts/run.sh
If you want to access localhost to ports 80 and 443 you need to perform two actions:
First, when you create your container, you must specify the port mapping specifically. If you run docker run
with -P
option, the ports set in dockerfile's EXPOSE
will be expose to random ports in the Boot2Docker environment. If you want to map it specifically you must run:
docker run \
--net=host \
--name=webserver1 \
-v /home/data:/data/www/www.samplewebserber.com \
-v `password`:/scripts \
-d -p 80:80 -p 443:443 \
folder/serverfolder \
/scripts/run.sh
And in order to map Boot2Docker port to your host environment, as Joe Niland link suggested, you must do a port forwarding using SSH tunneling:
boot2docker ssh -L 80:localhost:80
boot2docker ssh -L 443:localhost:443
You can change to port mappings if you wish.
boot2docker actually created a vm with linux core in your Mac OS with VirtualBox, and 192.168.59.103 is the ip for that vm.
So you need to set a port forward for that vm
Notice that in Mac OS, port 80 need a high permission, so I use 8080 instead in this example.