However, docker internals have basically been replaced with containerd[0] in this point -- the two front runners in the battle to actually run your containers (and power higher level abstraction tools like docker) are containerd[0] and cri-o[1].
I personally prefer containerd, but there are a lot of people who are obsessed with cri-o (big company backers, from what I can remember), despite the fact that it's chronically behind on features (for example alternate runtimes, runtimeClass support), but they're both excellent.
Note that there are also other projects like podman[2] that also aim to serve as docker replacements.
Discussion on containerd shim in docker can be found on google group[3] way back in 2016.
[0]: https://github.com/containerd
[1]: https://github.com/cri-o/cri-o
[2]: https://github.com/containers/libpod
[3]: https://groups.google.com/forum/#!topic/docker-dev/zaZFlvIx1...
Given a mediocre number of physical machines (say, 40), which is easier, install, setup and maintain a VMWare cluster or a Kubernetes cluster?
If someone has any insight, preferably backed by actual experience, it'll be most appreciated.
If you want to run 200 different services on 40 machines, you may find hand crafted VMs easier to create and forget.
If you want to run 10 services with different levels of replication and redundancy on 40 machines, then Kubernetes will do that for you.