I have no experience with the mempool.space container, but am i correct in assuming the setup is
bitcoin core is the "master", it syncs the blockchain.
Electrs connects to core to and acts as an SPV host
mempool.space's api container connects to electrs, and apparently also to bitcoin core to fetch it's data.
mempool.space's api container connects to mempool.space's db container to create a relational database of the parsed blocks
mempool.space's web container connects to mempool.space's api container, it has an exposed port forewarded to an internal port, allowing you to surf to the web interface which will connect to the api container to get the actual data from the db container.
I see in your bitcoin.conf that you're allowing connections from 127.0.0.1 (localhost), 10.0.0.0/8 and 192.0.0.0/8 (typical lan ranges) and 172.0.0.0/8 (typical docker ranges). I guess this is all that's needed
In your earlyer post you said you can connect your local electrum to electrs, this is still correct?
You also said you can see the mempool.space web interface, but it stays empty? This would mean the web container port forewarding is working.
Traffic between the web, api and db containers should go over docker's internal network, since they're all defined in the same compose file and the compose file does not specify a modified network. This means api, web and db should be able to communicate over docker's internal network without problems (the default docker internal network is pretty straight foreward without much bells and whistles).
So, the network between web frontend, api and db of mempool.space should be ok. The same can be said for the connection between core and electrs (since you can connect electrum to electrs and it works, so core should be up and running, and the rpc should be working, and electrs should also be ok).
This would mean the problem lays between the api container and either electrs or bitcoin core OR it's a problem with one of the components inside the mempool.space container (most likely suspect is the api container, since it looks like this is the one doing the actual "work", the other two containers are the frontend and the underlying relational database).
I have no current machine where i can actually emulate your situation, but could you try if you can log in to the shell of the api container?
for example:
It depends on which container image was used to build mempool.space's api container wether or not this will work. Not all containers have a shell binary included...
IF you are able to log in, you could try if you have debug tools available (for example, telnet or curl). If you do, you could try connecting to electrs port 50001 and core's port 8332 from inside the container... See if that works.
You could also have a look around and see if you find log files.
A different way to look at the log files inside the container is:
docker container logs api
We basically need to pinpoint what is going wrong... Is it the api container not being able to connect to electrs or core, or is it connecting but is the api process failing for some reason? Those would be the first two things i would try to figure out, my gut tells me odds are big that it's one of these two things that's failing.
Personally, would still pull core and electrs inside the same docker environment (define them in the same compose file), that way all five containers (core, electrs, api, web and db) would be on the same virtual internal docker network, which would make it easyer to configure (only one range, no need for ip addresses since there's an internal DNS, no firewalling or port forewarding between the containers,... etc, etc). That way, the only problem would be exposing a port for the web container, so you could actually use a browser to view the data. You wouldn't even have to resync core or anything if you just mapped ~/.bitcoin on your host to /root/.bitcoin inside your container and picked a core container containing the same core version you're running right now.