Giving a docker container a routable ip address

前端 未结 2 1462
迷失自我
迷失自我 2020-11-30 20:41

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

2条回答
  •  盖世英雄少女心
    2020-11-30 21:27

    Recently I had the same problem and solved it using Network Containers:

    • Start my 'service' container that I want to be available on the public IP
    • Create a new 'network' container that is linked with the service container and does routing to the ports exposed by the service container. This container will have an extra network interface bridged with the host so it can acquire an IP from DHCP.
    • Create a network bridge from the Docker host to the container using jpetazzo's Pipework (https://github.com/jpetazzo/pipework)
    • The network container acquires an address from DHCP.

    From this point on the network container is available on the network and routes the ports to the service container. The main advantage is that the 'service' container does not have to know about the public IP, DHCP, etc. This way every running container can be made public on the network.

    For convenience, I created a script that does all of this at once. Making a running container available on a public IP is as simple as:

    create-network-container.sh webserver ens32
    

    In this case you would need to have a running container called 'webserver', and a network interface on the host 'ens32'. The interface is needed in order to create the bridge into the network container.

    The script, more detailed info and examples are available on: https://github.com/jeroenpeeters/docker-network-containers

提交回复
热议问题