Well frankly, no. It’s like with conventional NAT as well. The IP’s behind the NAT are not reachable from the outside, and they shouldn’t be. The 172.16.0.0/12 IPs you are using for your containers are class-B private IPs and should not be reachable from the outside.
What you can do however is assign your host multiple public IPs and then assign the containers one of those.
See here for more information: Multiple host ips to docker container
Or you can consider using a reverse proxy, but that then depends on the actual application you are running.