Exposed ports are not forwarded by default when running containers unless `-P` option is used with `docker run`, the usual approach is to run containers explicity saying what ports to publish with `-p` option.

```
  -p, --publish=[]: Publish a container's port to the host (format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort) (use 'docker port' to see the actual mapping)
  -P, --publish-all=false: Publish all exposed ports to the host interfaces
```
The good part about declaring interesting ports as exposed is that linked containers can access them without a need to publish the ports:

```
$ docker run -t -i --link splash-01:splash busybox sh -c 'telnet $SPLASH_PORT_5023_TCP_ADDR 5023'

twisted.manhole.telnet.ShellFactory
Twisted 11.1.0
username:
```