The Big Picture - moby/moby - Design Philosophy

The Moby Project, an initiative of Docker, is an open-source project aimed at advancing the software containerization movement. It was born out of the need to decouple Docker into independent components and provide a comprehensive library for container technology research and development.

Background

Moby Project was introduced as a new open-source project in April 2017, with the goal of helping the ecosystem take containers mainstream. It provides a library of components, a framework for assembling them into custom container-based systems, and a platform for collaboration among container enthusiasts.

Decoupling Docker

Docker started as a monolithic application, with the Docker engine handling all containerization tasks. However, with the release of Docker engine v1.11, the monolith was decoupled into independent components. Moby Project was then spun out as an R&D lab for experimenting, developing new components, and collaborating with the ecosystem on the future of container technology.

Open Source Collaboration

Docker uses the Moby Project as an open R&D lab for experimentation and collaboration on new container technology components. All open source collaboration for Docker has moved to the Moby project, allowing users to continue using Docker as a container platform while contributing to the development of new technologies.

Design Philosophy

The Moby Project is designed for system builders who want to build their own container-based systems, not for application developers. It offers a library of components derived from Docker, as well as the option to “bring your own components” (BYOC) packaged as containers. System builders can mix and match components to create customized container systems.

Open Source Community

The Moby Project is an open community where container enthusiasts can experiment, exchange ideas, and collaborate on components and assemblies. It is a place for growing the ecosystem and user community to the next level.

Branding Decisions

The decision to rebrand the Docker open source project to Moby was met with negative reactions from the community due to the lack of consultation and transparency in the process. This incident serves as a reminder of the importance of open decision-making in open source communities.

Key Components

  1. BuildKit & Docker Buildx: A set of tools for building container images more efficiently and securely. (https://blog.kubesimplify.com/the-secret-gems-behind-building-container-images-enter-buildkit-and-docker-buildx)
  2. Moby Origin: The open base for the Docker container platform and examples of container systems using various components from the Moby library. (https://www.docker.com/blog/introducing-the-moby-project)
  3. Container and Linux OS Architecture: Understanding the differences between Linux and Unix and working with diffs and patches. (https://opensource.com/article/18/5/differences-between-linux-and-unix, https://opensource.com/article/18/8/diffs-patches)

Resources

  1. Introducing Moby Project
  2. Moby Project Website
  3. How to make branding decisions in an open community
  4. Call me Moby Dock
  5. Linux vs. Unix: What’s the difference?
  6. An introduction to diffs and patches
  7. The secret gems behind building container images: Enter BuildKit and Docker Buildx