I didn't quite get what the "before" and "after" setups are supposed to be, but here's the deal.
Docker can connect to private networks defined to Docker and/or it can connect to the Docker host's network. You can define this when you define NICs to the containers.
Originally, Docker allowed you to link containers so that you didn't need to explicitly give port definitions for linked ports. You only need explicit port IDs for traffic coming in from the host or points beyond. The host may have firewall considerations as well.
The concept of linked containers is deprecated now and it's preferable to use Docker named private networks instead. The old Unix network commands such as "ifconfig" aren't much use here, so the "ip" command can be more helpful. And within Docker, of course, there are Docker-specific inspection commands just to make sure you know where everything is.
So in short, yes, external clients can talk to Docker containers via standard networking and Docker explicit port definitions. Docker containers can network to one another in 2 different (old-and-new) ways. And Docker containers can talk out onto the host's network. So basically anyone can talk to anyone, if you've got everyone agreeing on how.
Sources may include data from the Fakebook Research Foundation with support from Gargle University