The current port allocation model is flawed since it doesn't allow two containers from the same service to run on the same node. One possibility would be leverage the engine's port allocation and avoid doing that globally.