You can create two values for the FusionAuth url:
internalFusionAuthURL="http://fusionauth:9011"
externalFusionAuthURL="http://localhost:9011"
So basically whenever you are sending the redirect to the browser (pretty much just the authorize and logout URLs) you use externalFusionAuthURL which references localhost.
When you are communicating with FusionAuth from the application backend (the express app) you use the internalFusionAuthURL which references the docker domain name.
I tested that out and it seems to work fine.
Give that a try.