Some time ago I had an issue with a Docker container that didn't really like to run behind NAT, which is what happens when a container is started in "bridged" mode in docker. I did some digging around and found a potential solution in something called "macvlan bridging" which could give the container an IP in the same "network" as the host machine and also let the container communicate on network layer 2 (MAC address layer). This approach is quite different than adding an IP and binding the container to that IP (which will still result in NAT and runs in network layer 3, IP layer). However there were quite a lot of manual steps that had to be completed in order to configure "macvlan bridging" on both the host and in the container and I wanted something that could configure all of this both at host server restart and individual container restart. For this purpose I've created a few scripts available here: https://github.com/nicjo814/openmediavault-docker-br .
The benefits of all of this is that a container will "behave" more like a real server, networking wise, in that when you open a network port for some service (like http) that service can immediately be accessed on e.g. http://your-ip and this also lets you run multiple containers listening on the same port (as long as you give them different IP's) without having to do any port forwarding when booting up the container with docker run.
For 99% of the containers out there I would guess that this is totally unnecessary, but then there are a few which really needs this
Please note that I've only run the scripts on my own server so they are not exceptionally well tested yet...