The concept of container networking aims to standardize and optimize container data flows. Container networks create insulated zones to make it possible for multiple containers to communicate simultaneously and independently in an efficient manner.
What is container networking?
Container networking enables containers to communicate with other containers or host and share their resources, data and applications.
What are types of container networking?
There are several ways to connect from container to container and from container to host. The following are the most used of the existing container network types:
- None: This mode, as the name implies, does not configure any IP for the container. that is, the container does not have access to other containers and to the external network either. Some uses of this container network mode can be summarized as follows:
- testing containers
- preparing a container for network connection
- containers that do not need external communication.
- Bridge: This mode is the basic network mode that will allow connection to other interfaces of the host machine and other containers it contains. If containers are ready for use and if no network settings are assigned, all containers are included in the bridge network as default. They provide communication between containers or over this network. This bridge will be open to the outside if certain ports have been defined while creating containers over the network.
- Overlay: Overlays use network tunnels to communicate between hosts. In this way, the containers act as if they are on the same machine, even if they are not on the same machine, so that a network subnet can span multiple computers. Overlays seek solutions to the problem of communication between hosts. Containers connected to two different container networks on the same host cannot communicate with each other via the local bridge.
- Underlay: Underlay networks are used to connect host interfaces directly to containers running on the host computer. The two main branches of this type are
- MACvlan (media access control virtual local area network): It is used to allow multiple virtual network interfaces to be created behind the host’s single physical interface. MACvlan uses a unique IP and MAC address per container.
- IPvlan (internet protocol VLAN): IPvlan creates new virtual network interfaces and assigns a unique IP address to each. This is similar to MACvlan. The difference is that the same MAC address is used for all containers on the host computer.
What are container networking standards?
The main problems for container networking are multi host networking and rules to manage these networks. The two standardized solutions are Container Network Model by Docker and Container Network Interface by CoreOS.
- Container Network Model:The Container Network Model (CNM) is a specification proposed by Docker and adopted by projects such as libnetwork. Cisco Contiv has become a strong specification with the integration of projects and companies such as VMware and Weave. In this model there is a network controller that is responsible for pairing a driver to a network. Each driver is responsible for managing the network it owns.
- Container Network Interface: The Container Network Interface (CNI) is a specification proposed by CoreOS. Apache Mesos has become an inclusive network specification adopted by projects such as the Cloud Foundry and Kubernetes. The CNI has been created to be a simple contract between container runtime and network plugins. CNI allows multiple plugins to be run at a time.
If you have questions about how containerization or container networking is important for your business, we can help: