There's no need for the ports to be random – you can add parameters to multichain-util on the command line to fix the value of any blockchain parameter, including default-network-port and default-rpc-port.
As for the IP address I can't comment since this is a Docker issue – MultiChain will list on all IP addresses that are available to it in the host environment.