Since network_mode: host results in a lack of network namespace isolation, the container effectively uses the network devices from the host, and behaves network-wise like any native process on the host.
The solution is indeed to configure the application inside the container to bind the ip you need, the same way you would need to configure it for a native process on the host itself.