Docker Networking: 3 major areas – CNM, Libnetwork, Drivers

CNM

aka Container Network Model. This is the Docker Networking Model.

Note: there is an alternative РCNI (aka Container Network Interface) from CoreOS which is more suited to Kubernetes. More here: https://kubernetes.io/blog/2016/01/why-kubernetes-doesnt-use-libnetwork/

The CNM has 3 main components:

  • Sandbox: contains configuration of container’s network stack (aka namespace in Linux)
  • Endpoint: joins Sandbox to a Network (aka network interface. e.g. eth0)
  • Network: group of Endpoints that can communicate directly

See also: https://github.com/docker/libnetwork/blob/master/docs/design.md

and

Libnetwork

aka Control & Management plane

https://github.com/docker/libnetwork

Cross platform and pluggable.

Real-world implementation of CNM by Docker.

Drivers

Data plane

Network-specific detail

  • Overlay
  • MACVLAN
  • IPVLAN
  • Bridge

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *