theod
Docker 1.9 brought in Native multi-host networking support using overlay driver. Proper multicast support for the overlay driver would require proper multicast control-plane (L2 & L3). Contributions welcome.
Having said that, with Docker 1.9 & above, IP address management and Network plumbing are separate concerns and both are pluggable. One could implement a network plugin with any logic and continue to enjoy all the built-in IPAM features (including --ip). Hence, if you have a specific network plumbing requirement, you could easily spin up a plugin (or use one of the many network plugins that are available out there).
The CNM is realized using the newly introduced Experimental Networking solutions which includes : Network & Service UI, Pluggable Service-Discovery and Native Multi-Host cross-container connectivity. More information on trying out these experimental feature : https://github.com/docker/docker/blob/master/experimental/ne... https://github.com/docker/docker/blob/master/experimental/RE...
Service (aka endpoint) owns the networking configs (such as ip-address, mac-address, etc...) and the container that backs the service can be swapped while retaining the same networking and service configs. Hence swapping a container between older to newer version of app server is just a matter of detaching a service from the older container and attaching the same service back to the newer container. Also, Please note that a container can belong to multiple networks and each container can publish different services in different network.
With these simple and composable CNM design, your use-case can be mapped to the CNM model. A quick diagram explaining the concept : https://docs.google.com/drawings/d/1LvD94UwfinQelpEqT9BaRYmi...
We can add more detailed documentation for this specific use-case. Please join us in https://github.com/docker/libnetwork and IRC@freenode #docker-network channel to discuss this in more detail.
Also, the network model is being revamped via https://github.com/docker/docker/issues/9983 to provide a more flexible plugins based Networking system which can also provide multi-host solution that is more powerful than the existing single-host multi-container linking system.