Boot2Docker - Access webserver as localhost
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.
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'sEXPOSE
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.