On 12/6/19 5:39 AM, Nicolas Mailhot via devel wrote:
Le jeudi 05 décembre 2019 à 16:42 -0700, John M. Harris Jr a écrit :
> Why in the world was Docker removed? Docker is the most popular
> container
> technology, so if we must embrace the "container" systems, why not
> include the most popular in Fedora?
Because moby (née docker) is a trainwreck on the technical side (sky-
high bundling of git snapshots, with disagreement on the correct
snapshot to bundle between various components, that make maintaining
docker, and pulling it forward, for example for changes cgroup-side, a
major endeavour).
In other words: classical technical debt accumulations. Lots of
unhealthy technical compromises, to be first to market, and get adopted
(that worked fine), and no plan to deal with what happens afterwards
(long term maintenance, evolution, and support).
Regards,
Docker is still available as Moby package. Docker Inc changed their
requirements on the use of the name Docker. So we stopped packaging
Docker directly on Fedora. Moby is the upstream project comprising a
lot of what Docker is and will be. So we ship that in Fedora.
Simultaneous with this we began working on splitting apart what was
Docker into a series of smaller tools that could run any OCI/Docker
Image in the same way that the Docker Daemon did. But with different
security goals.
Skopeo - Allows you to copy container images from any container registry
to other types of container storage including other container
registries. Think of this as scp for container images. Does not require
root on the host to run.
Buildah - Container image builder that allows the user to build
OCI/Docker images and push them to contianer registries. Does not
require root. Allows use of Dockerfile as well as simple bash scripting
for creating container images. Can be run without any privilege inside
of another container.
Podman - Complete replacement of the Docker CLI. Implements almost all
of the familiar commands from the Docker CLI with the same CLI. alias
docker=podman, and your commands should work. Works rootless as well as
root. Does not require a Daemon to be run. Really works well with
Systemd. Also supports lots of advanced features like Pods.
CRI-O - Container Runtime Interface Daemon for running Kubernetes
workloads. Dedicated/optimized to Kubernetes. Does not support any
other orchestrators.