Moby
Moby is an open-source project created by Docker to enable and accelerate software containerization.
Moby provides a "Lego set" of toolkit components, the framework for assembling them into custom container-based systems, and a place for all container enthusiasts and professionals to experiment and exchange ideas. Components include container build tools, a container registry, orchestration tools, a runtime and more, and these can be used as building blocks in conjunction with other tools and projects. Moby is licensed under the Apache License
, Version 2.0.
The goal of the Moby Project is to advance containerization.
Why Moby project was created?
In the last 5-6 years, Docker has experienced exponential growth. With billions Docker images pull and thousands of contributors being added month after month, Docker project saw tremendous community engagement. With such exponentially growing community, the boundaries between community and product started to look โblurโ as the community was confused if they are contributing to product or the project. To bring the clarification around this debate, Docker finally decided to break its monolithic model into smaller open source components(including containerd, libnetwork, swarmkit and LinuxKit) and hence created the Moby project. Moby is an open-source project created by Docker to advance the software containerization movement. It is an upstream project & perfectly a place for all container enthusiasts to experiment and exchange ideas. In short, it specified that "Moby is a project & Docker is a product".
Principles:
Moby is an open project guided by strong principles, aiming to be modular, flexible and without too strong an opinion on user experience. It is open to the community to help set its direction.
- Modular - the project includes lots of components that have well-defined functions and APIs that work together.
- Batteries included but swappable - Moby includes enough components to build fully featured container system, but its modular architecture ensures that most of the components can be swapped by different implementations.
- Usable security - Moby provides secure defaults without compromising usability.
- Developer focused - The APIs are intended to be functional and useful to build powerful tools. They are not necessarily intended as end user tools but as components aimed at developers. Documentation and UX is aimed at developers not end users.
Components:
Moby Project at its core is a framework that allows anyone to assemble his or her own container system in a very efficient way so that there is no duplication or wasted effort. The Moby Project has three core components:
- A framework for assembling the components into a standalone container platform, and tooling to build, test and deploy artifacts for these assemblies.
- A reference assembly, called Moby Origin, which is the open base for the Docker container platform, as well as examples of container systems using various components from the Moby library or from other projects.
- A library of containerized backend components (e.g., a low-level builder, logging facility, volume management, networking, etc. )
Use of Moby:
Moby is recommended for anyone who wants to assemble a container-based system like:
- System engineers or integrators building a container system.
- Infrastructure providers looking to adapt existing container systems to their environment
- Hackers who want to customize or patch their Docker build.
- Open-source developers looking to test their project in a variety of different systems
Moby is NOT recommended for the following use cases:
- Enterprise IT and development teams looking for a ready-to-use, commercially supported container platform. It is recommended to use Docker EE instead.
- Application developers looking for an easy way to run their applications in containers. It is recommended to use Docker CE instead to run applications.
- Anyone curious about containers and looking for an easy way to learn. It is recommended to use docker.com website instead for learning.
References:
- Moby Github: https://github.com/moby/moby
- Moby Docs: https://mobyproject.org/
- Collabnix Docs: https://collabnix.com/demystifying-the-relationship-between-moby-docker/
- Docker docs: https://www.docker.com/blog/introducing-the-moby-project/