Linux container product and software systems such as Docker are increasingly being used to create large platforms for distributed applications that can run in the cloud and driving the need to understand the need for Container Networking. The primary advantage of containers is they can run large, distributed applications with low overhead by sharing a stripped-down operating system (usually based on Linux), an approach that can be more efficient than using virtual machines.
Containers, compared to virtual machines (VMs) such as those produced and managed within VMware environments, are much simplified. They often contain minimal Linux operating systems such as CoreOS or, more recently, a minimal Windows Server system called Nano Server. But in order to function properly, container systems need networking functionality to connect distributed applications across the cloud.
A container is produced from a prepared image gathered from a designated registry, such as Docker Hub or another private registry. Think of this image as a snapshot of just the software needed to run a particular workload, along with only the software it depends upon to function and nothing else. When the daemon instantiates the container, it assigns a unique network address to it, connecting it to a virtual Ethernet bridge, which in the case of Docker is called docker0. All containers in the system communicate with each other by directing packets to docker0, which then forwards those packets through the subnet automatically. CoreOS’s container runtime, called Rocket or rkt, handles networking in a very similar fashion.
The concept of container technology uses the paradigm of shipping containers in inter-modal transport. The idea is that before shipping containers were invented, manufacturers had to be prepared to ship goods in a wide variety of modes – ships, trains, or trucks – with different sized containers and packaging. By standardizing the shipping container, goods could be seamlessly transferred among shipping methods without any additional preparation.
Below is a list of key players in the Linux container product ecosystem.
Container Infrastructure Companies [Featured]
All Container Infrastructure Companies
- Ansible (a Red Hat Company)
- BlueData Software, Inc.
- Chef Software
- Cisco Systems, inc.
- Hewlett Packard Enterprise
- *Juniper Networks, Inc.
- New Relic
- *Nuage Networks
- Puppet Labs
- Rancher Labs
- *Red Hat
- Shippable, Inc.
- VMware, Inc.
- Weaveworks Inc