On day 1 of DockerCon 2017 there were two new major announcements: Moby Project and LinuxKit. Both of which are more technical than the average developer may be interested in, but we get it. Last year we saw releases targeting developers and integration of swarm. This year’s announcements seem to be targeting large distributed systems engineers.
DockerCon 2017: Moby Project
The Moby Project is meant to be a collaborative method to build containerized systems across platforms.
Here is a description from the project’s GitHub README.md:
At the core of Moby is a framework to assemble specialized container systems. It provides:
- A library of containerized components for all vital aspects of a container system: OS, container runtime, orchestration, infrastructure management, networking, storage, security, build, image distribution, etc.
- Tools to assemble the components into runnable artifacts for a variety of platforms and architectures: bare metal (both x86 and Arm); executables for Linux, Mac and Windows; VM images for popular cloud and virtualization providers.
- A set of reference assemblies which can be used as-is, modified, or used as inspiration to create your own.
All Moby components are containers, so creating new components is as easy as building a new OCI-compatible container.
The demo at DockerCon was very cool and you can see the vision, x86 or ARM, hypervisor/ OS independent clusters and applications.
You can read more about Moby Project here.
DockerCon 2017: LinuxKit
The other big announcement today was the unveiling of LinuxKit. LinuxKit is a minimal 35MB container focused OS that is meant to have services bolted onto it as containers.
The goal of LinuxKit compared to some other projects, is to allow Docker containers to securely run anywhere, even on Windows Hyper-V hosts, cloud providers, bare metal and OS X.
Each service using LinuxKit will be added only if required and run with appropriate permissions. We need to play with LinuxKit more but it seems like an Alpine alternative albeit with a different focus.
Here is the official excerpt from the project’s GitHub:
LinuxKit, a toolkit for building custom minimal, immutable Linux distributions.
- Secure defaults without compromising usability
- Everything is replaceable and customisable
- Immutable infrastructure applied to building Linux distributions
- Completely stateless, but persistent storage can be attached
- Easy tooling, with easy iteration
- Built with containers, for running containers
- Designed for building and running clustered applications, including but not limited to container orchestration such as Docker or Kubernetes
- Designed from the experience of building Docker Editions, but redesigned as a general purpose toolkit
- Designed to be managed by external tooling, such as Infrakit or similar tools
- Includes a set of longer term collaborative projects in various stages of development to innovate on kernel and userspace changes, particularly around security
You can read more about LinuxKit here.