CNI logo

Container Network

CategoryCloud Computing Standards

Container Network Interface (CNI) is a project of the Cloud Native Computing Foundation (CNCF) which creates a specification and libraries for configuring network interfaces in Linux containers. It allows third parties to plug in their network layers into a container runtime.


Specification


Pluggable Network Layer


Uniform Container Network Configuration

Application containers on Linux are a rapidly evolving area, while networking is not well addressed and remains highly environment-specific within this domain. Many container runtimes and orchestrators are seeking to solve the same problem of making the network layer pluggable, preferably using a standard interaction method.

CNI Specification is derived from the rkt Networking Proposal, and defines a common interface between network plugins and a container execution runtime.

The specification defines how a container runtime creates a new network namespace for a container — an isolated context for an individual container (Docker) or point-of-delivery (rkt), and how it determines which network this container belongs to — a group of entities that are uniquely addressable and can communicate amongst each other.

The container runtime adds the container to each network by sequentially invoking the corresponding plugins for each network — executables responsible for inserting a network interface into the container network namespace.

CNI standard