I am running this on ubuntu 14.04 and have set docker0
to a static ip which is then routed to from the public ip through the firewall. I am trying to set up my backend API to run in a docker container and am confused by a couple things.
1.) How would I map docker0
's ip to the container's ip such that docker0
would know to send the incoming packets to the container (dynamically if possible).
2.) If not already done in such a way, how could I make it so that I don't have to set this up every time I do a fresh run of that docker container?
Thanks in advance!
I assume you want to have an IP assigned to your docker container outside of docker.
First, create a new IP and assign it to your host's interface (we assume your interface is called eth0.
$> ip addr add 10.0.0.99/8 dev eth0
Now, when you fire up the container, specify that address and link it to your docker container:
$> docker run -i -t --rm -p 10.0.0.99:80:8080 base
The -p argument will make docker create an iptables NAT rule which will nat all the traffic matching the destination 10.0.0.99:80 to your docker container on port 8080.
If you need to automate the process and scale it out, consult this resource: https://github.com/jpetazzo/pipework
The docker documentation is a good start: https://docker.github.io/engine/userguide/networking/