public void updateProperties(Map<String, Container.PortBinding> dockerObtainedDynamicBindings) {
        for (Map.Entry<String, Container.PortBinding> entry : dockerObtainedDynamicBindings.entrySet()) {
            String variable = entry.getKey();
            Container.PortBinding portBinding = entry.getValue();

            if (portBinding != null) {
                update(hostPortVariableMap, specToHostPortVariableMap.get(variable), portBinding.getHostPort());

                String hostIp = portBinding.getHostIp();

                // Use the docker host if binding is on all interfaces
                if ("0.0.0.0".equals(hostIp)) {
                    hostIp = projProperties.getProperty("docker.host.address");
                }

                update(hostIpVariableMap, specToHostIpVariableMap.get(variable), hostIp);
            }
        }

        updateDynamicProperties(hostPortVariableMap);
        updateDynamicProperties(hostIpVariableMap);
    }
Update variable-to-port mappings with dynamically obtained ports and host ips.
This should only be called once after this dynamically allocated parts has been be obtained.

@param dockerObtainedDynamicBindings keys are the container ports, values are the dynamically mapped host ports and host ips.
src/main/java/io/fabric8/maven/docker/access/PortMapping.java