Docker and Moby

Last week i've updated docker to latest version and found:

 Version:      17.05.0-ce
 API version:  1.29
 Version:      17.05.0-ce
 API version:  1.29 (minimum version 1.12)

instead of 1.13.x..

Looking up the documentation i've realized that the docker i use now was renamed to Docker Community Edition (Docker CE) and is being released on new time-based release schedule. Actually that time-based releases are reflected in Docker version's now, i found a word about it in the Changelog of moby project. Waaaait... Moby??? What happened to Docker?

Why Moby

From recent anoncement of the moby project we know

The Moby Project ... provides a library of components, a framework for assembling them into custom container-based systems...

Also we know that Docker's codebase has grown over time and was split to libraries and components such runc, HyperKit, VPNKit, SwarmKit, InfraKit, containerd, etc. Also Docker is being assembled for several platforms and demand is growing. So moby is about assembly, this is what article says:

Moby is designed for system builders, who want to build their own container based systems, not for application developers, who can use Docker or other container platforms.

Good news, not affecting application develpers, but still not that clear on what happens to Docker. After researching a bit i came to conclusion that in essense Moby project finaly separates Docker (the open source project) from Docker Inc (the company). While this is marked by the move of the docker/docker GitHub repository to moby/moby. Just another reorganization.

It looks like there is nothing to worry about, we just can go on with Docker CE

and normal docker users are unaffected by moby, so we can breathe out again ;)

What is Moby doing

To take last confusion from you abot moby i try it with the picture being twitted around. It think that illustrates a lot.

On the left side we see all the components and libraries the actual Docker consists of. On the right site we see different editions or future vendor Docker editions. In that sense moby is a project which provides a “Lego set” of dozens of components and the framework for assembling them. For example Docker CE will be assembled from components that are packaged by the Moby project.