This article should do a better job of explaining how Minikube is a "drop-in replacement for Docker Desktop". After installing Minikube, you won't just be able to run `docker` commands (`docker build`, `docker run`, etc.) on the terminal like you would after installing Docker Desktop.
You need to download the Docker client somewhere, need to configure this client to point to Minikube's remote host (`minikube docker-env` helps here), and some Docker commands won't work the same (--publish, --volume).
The author doesn't point this out well, but Minikube allows you to pretty easily expose a remote Docker host to be used for `docker build` and other Docker API commands. The command is `minikube docker-env`, which defines env vars that point the `docker` CLI client at Minikube's Docker API.
Docker Desktop provides an easy way to run `docker` commands from a non-Linux host, taking care of the VM management under the covers. It simplifies a lot of concerns so Docker "just works" on a non-Linux host.
I think the author was speaking generally about Minikube, not specifically as a Docker Desktop replacement here. Minikube can also be installed on Linux and doesn't require a VM in that environment. On Mac and Windows, it does of course require a VM, just as Docker does.
Assuming you've installed Minikube and separately downloaded the Docker CLI client, you start up Minikube, set up the Docker environment using `minikube docker-env`, and run `docker` commands as usual.
This configures the Docker client to run against a "remote host", it does have some notable limitations. The `--publish` and `--volume` arguments don't work the same way, for instance.
I believe the point of this article was to point out alternatives to Docker Desktop -- that is, Docker solutions that run on Windows and Mac hosts. The point wasn't to highlight alternative k8s distributions.
There is special setup required. The docker daemon won't be running on /var/run/docker.sock, needs to point to a network port where the remote host is exposed (ex: tcp:///172.21.108.0:2376).
Aside from starting the Kubernetes cluster, you need to run `eval $(minikube docker-env)` which sets up the environment variables like DOCKER_HOST to point the client at the remote host.
You need to download the Docker client somewhere, need to configure this client to point to Minikube's remote host (`minikube docker-env` helps here), and some Docker commands won't work the same (--publish, --volume).