-
containerd.io - daemon to interface with the OS API (in this case, LXC - Linux Containers), essentially decouples Docker from the OS, also provides container services for non-Docker container managers
-
docker-ce - Docker daemon, this is the part that does all the management work, requires the other two on Linux
-
docker-ce-cli - CLI tools to control the daemon, you can install them on their own if you want to control a remote Docker daemon
https://www.reddit.com/r/docker/comments/dsr6y2/containerdio_vs_dockercecli_vs_dockerce_what_are/