bluebay2014 - Fotolia

Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Container networking: How does Docker relate to SDN?

Networking expert John Burke tackles container networking in this edition of Ask the Expert, explaining how a Docker container relates to SDN.

The short answer: It depends.

Docker software creates container environments that can host applications, with the goal of making them more lightweight and portable. Containers allow IT to deploy a new application without devoting an entire dedicated operating system (OS) instance and virtual machine (VM) to it -- multiple containers can run on a single VM or a dedicated physical server. Because a Docker-deployed application is written to the container interface rather than a specific operating system, it also enjoys greater portability. Users can access the app in a container running under any operating system that Docker has been ported to, including: most Linux versions, CentOS, Mac OS X, Windows and the major cloud platforms (Amazon Web Services, Microsoft Azure, Google Cloud Platform and IBM SoftLayer).

So, on to SDN.  Let's say you're using the classic definition of software-defined networking (SDN), in which control plane and data plane are separated, with OpenFlow providing a protocol for them to talk to each other and SDN applications providing network services by using the SDN controller to direct data plane activity. In that case, Docker and SDN don't have a direct relationship. Docker works with the networking infrastructure inherent to the host OS on which the container runs, without caring what kind of network it is.

Docker does, however, have a connection to today's looser understanding of SDN -- which can encompass network virtualization, network programmability and the separation of the control and data plane, singly or in any combination. Docker uses virtual networks to connect containerized applications with the local network, and connect containers with other containers on the same host. IT staff can also define, directly via Docker or via associated tools for managing Docker environments, such as Flocker or Rancher, virtual overlay networks to connect containers across hosts and over larger networks (such as data centers, wide area networks and the Internet).

Next Steps

Docker steps up container virtualization strategy

Use PacketBeat for inspecting Docker traffic

Docker: The essential guide

Can containers and SDN co-exist?

How to set up a Docker container network

This was last published in August 2015

Dig Deeper on Network virtualization technology