SlideShare a Scribd company logo
JANUARY,
2017
containerd
Extracting Docker’s core container runtime
2
Docker Extracts and Donates containerd to
Accelerate Innovation Across the Ecosystem
● Open source Docker’s core container runtime component into community project
○ Expansion of original containerd adding more Docker Engine functionality
○ Provides all the core primitives to manage containers on Linux and Windows hosts
○ Will use the OCI standard and be fully OCI compliant when 1.0 available
● Docker & other leading container systems to use containerd as core runtime
component
○ containerd used in millions of production Docker Engines since April 2016 in Docker 1.11
○ Provide a “boring” infrastructure component
● Built by Docker with input from largest cloud providers for project success
● Commitment to donate to a neutral, open foundation in Q1 2017
Docker Engine = Container Platform for
Complete Distributed App Lifecycle
3
Docker Differentiators
SwarmKit
Containerd
InfraKit
Container Orchestration
Core Container Runtime
Infrastructure
Docker
API
Docker
CLI
Docker
Compose
Docker
Build
Auth Docker
Content
Trust
Docker
Distribution
Plugins
Storage
Networking
4
Docker Differentiators
SwarmKit
Containerd
InfraKit
Container Orchestration
Core Container Runtime
Infrastructure
Docker
API
Docker
CLI
Docker
Compose
Docker
Build
Auth Docker
Content
Trust
Docker
Distribution
Plugins
Storage
Networking
Docker Commercial Platform Docker Datacenter
Docker Engine = Container Platform for
Complete Distributed App Lifecycle
containerd:
What is a Core Container Runtime?
5
Component that provides
core primitives to manage
containers on a host
Currently 0.2.4 with
target for 1.0 feature set
(including OCI in Q2
2017)
Features
Container execution
and supervision
Image distribution
Network Interfaces & Mgmt
Local storage
Native plumbing level API
“Boring” infrastructure
component for container
infrastructure providers
Receiving upstream
patches from
infrastructure operators
containerd’s Role in Container Ecosystem
9
containerd and Kubernetes
10
Benefit to Infrastructure Operators and Providers
11
“Boring infrastructure” for the container ecosystem
• Limited feature scope that stabilizes over time
• A commitment to a stable API
• A community-defined release process which emphasizes quality over new features
• A reasonable LTS policy comparable to infrastructure projects of similar maturity
Collaborative community driven project run in the open
Designed for extensibility to work with all leading container
orchestrators
Branded separately from Docker, so as not to cause
undue benefit to a single commercial entity
Benefit to End Users
12
Greater collaboration
and component re-
use among vendors
to avoid
fragmentation
Allows for greater
vendor innovation at
higher levels of the
stack
Multi-cloud
portability
Allows Docker
platform to innovate
at its accelerated
pace
What is runc?
13
root_file_system
container.json
Containerd and runc
Containerd Today
Containerd 1.0 (Q2, 2017)
Containerd 1.0 in Docker (Q2, 2017)
18
Containerd Livestream Recap https://blog.docker.com/2017/01/containerd-livestream-recap/
Containerd Summit at Docker office 02/23/2017
Repo open for comments / collaboration / contribution
https://github.com/docker/containerd
Sign up for
February summit
More project details:
Architecture: https://github.com/docker/containerd/blob/master/design/architecture.md
API: https://github.com/docker/containerd/tree/master/api/
Roadmap: https://github.com/docker/containerd/blob/master/ROADMAP.md
containerd Project Information
containerd reports
19 https://github.com/docker/containerd/tree/master/reports
Docker containerd Kubernetes sig node
Docker containerd Kubernetes sig node
Docker containerd Kubernetes sig node

More Related Content

Docker containerd Kubernetes sig node

  • 2. 2 Docker Extracts and Donates containerd to Accelerate Innovation Across the Ecosystem ● Open source Docker’s core container runtime component into community project ○ Expansion of original containerd adding more Docker Engine functionality ○ Provides all the core primitives to manage containers on Linux and Windows hosts ○ Will use the OCI standard and be fully OCI compliant when 1.0 available ● Docker & other leading container systems to use containerd as core runtime component ○ containerd used in millions of production Docker Engines since April 2016 in Docker 1.11 ○ Provide a “boring” infrastructure component ● Built by Docker with input from largest cloud providers for project success ● Commitment to donate to a neutral, open foundation in Q1 2017
  • 3. Docker Engine = Container Platform for Complete Distributed App Lifecycle 3 Docker Differentiators SwarmKit Containerd InfraKit Container Orchestration Core Container Runtime Infrastructure Docker API Docker CLI Docker Compose Docker Build Auth Docker Content Trust Docker Distribution Plugins Storage Networking
  • 4. 4 Docker Differentiators SwarmKit Containerd InfraKit Container Orchestration Core Container Runtime Infrastructure Docker API Docker CLI Docker Compose Docker Build Auth Docker Content Trust Docker Distribution Plugins Storage Networking Docker Commercial Platform Docker Datacenter Docker Engine = Container Platform for Complete Distributed App Lifecycle
  • 5. containerd: What is a Core Container Runtime? 5 Component that provides core primitives to manage containers on a host Currently 0.2.4 with target for 1.0 feature set (including OCI in Q2 2017) Features Container execution and supervision Image distribution Network Interfaces & Mgmt Local storage Native plumbing level API “Boring” infrastructure component for container infrastructure providers Receiving upstream patches from infrastructure operators
  • 6. containerd’s Role in Container Ecosystem 9
  • 8. Benefit to Infrastructure Operators and Providers 11 “Boring infrastructure” for the container ecosystem • Limited feature scope that stabilizes over time • A commitment to a stable API • A community-defined release process which emphasizes quality over new features • A reasonable LTS policy comparable to infrastructure projects of similar maturity Collaborative community driven project run in the open Designed for extensibility to work with all leading container orchestrators Branded separately from Docker, so as not to cause undue benefit to a single commercial entity
  • 9. Benefit to End Users 12 Greater collaboration and component re- use among vendors to avoid fragmentation Allows for greater vendor innovation at higher levels of the stack Multi-cloud portability Allows Docker platform to innovate at its accelerated pace
  • 14. Containerd 1.0 in Docker (Q2, 2017)
  • 15. 18 Containerd Livestream Recap https://blog.docker.com/2017/01/containerd-livestream-recap/ Containerd Summit at Docker office 02/23/2017 Repo open for comments / collaboration / contribution https://github.com/docker/containerd Sign up for February summit More project details: Architecture: https://github.com/docker/containerd/blob/master/design/architecture.md API: https://github.com/docker/containerd/tree/master/api/ Roadmap: https://github.com/docker/containerd/blob/master/ROADMAP.md containerd Project Information

Editor's Notes

  1. The part that runs the container. Part not previously available as a separate component. Now spun out. Runc even smaller component/reference implementation of a standard. OCI. Engine and components...
  2. Expansion of the original project. Taking out more of the original Engine, embracing standards and donate to the community Addresses needs of infrastructure providers AND end users Upstream containerD: Stable, standards-based container core with open governance Provides all the primitives (core) to manage containers on Linux and Windows host Fully wrappable by downstream systems Downstream Docker is a complete container platform: addressing user need for innovation Full distributed application lifecycle
  3. OCI interface….dotted line/containerD interface above….
  4. OCI interface….dotted line/containerD interface above….
  5. Based on the Docker Engine’s Core Runtime to benefit from its maturity and existing contributors. Focused on providing “boring infrastructure”, in other words: A limited feature scope. The runtime will be strictly dedicated to managing a single node, and must cover the functionalities required by the major integrators of the Docker Engine at the time of writing (including but not limited to SwarmKit, Kubernetes, ECS, Mesos). A feature scope which stabilizes over time. In particular, the set of technical areas it covers (container execution, snapshot management, image distribution, networking) is expected to remain constant. A commitment to a stable API. A community-defined release process which emphasizes quality over new features. A reasonable LTS policy comparable to infrastructure projects of comparable maturity. Designed for higher layers to wrap and extend. Run as an open project: Implement open standards (specifically OCI Runtime and Image specifications). A fair, transparent, and well-documented decision-making process. IP and trademark managed and protected by a neutral foundation. No built-in dependency on a specific vendor’s offering or infrastructure (e.g., no built-in link to Docker Hub or Docker Store). Branded separately from Docker, so as not to cause undue benefit to a single commercial entity Delivered to the community in a reasonable manner: A clear announcement by the end of 2016 with a complete roadmap. An active development branch in the open, and open to contributions, by the end of 2016. A first LTS version shipped no later than Q2-2017. The requirement for a short-term relief for current users of the Docker Engine is acknowledged, but will not be addressed by this project: a separate proposal is exploring changes to the Docker release cycle.
  6. More component re-use and collaboration from their vendors More features with vendors have time innnovate on top of the component
  7. OCI describes the words in your json file Json file asks runC Takes a root file system and creates an isolated process Runtime executor -- runc
  8. OCI describes the words in your json file Json file asks runC Takes a root file system and creates an isolated process Runtime executor -- runc