We have already learned that containers are processes that run isolated on top of host operating systems. This isolation is provided using different namespaces for users, processes trees, inter-process communications, and a set of complete network resources for each containerized process. Therefore, each container will have its own network interfaces. To be able to communicate with the world, by default, the Docker daemon will create a bridged interface called docker0. The Docker network plane has not changed too much in the latest releases. It can be extended using external tools and plugins and is based on bridged and virtual network interfaces that connect hosts and container resources.
By default, a fresh Docker installation will show three network objects:
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
033e4c3f3608 bridge bridge local
82faac964567 host host local
2fb14f721dc3 none null local
As we have already learned, all objects are identified by their...