Minikube vs Kubernetes in Docker for Windows

Muhammad Rehan Saeed picture Muhammad Rehan Saeed · Jul 6, 2018 · Viewed 13.9k times · Source

Most tutorials I've seen for developing with Kubernetes locally use Minikube. In the latest Edge release of Docker for Windows, you can also enable Kubernetes. I'm trying to understand the differences between the two and which I should use.

  1. Minikube lets you choose the version of Kubernetes you want, can Docker for Windows do that? I don't see a way to configure it.
  2. Minikube has CLI commands to enable the dashboard, heapster, ingress and other addons. I'm not sure why because my undertstanding is that these are simply executing kubectl apply -f http://....
  3. With Minikube I can do a minikube ip to get the cluster IP address for ingress, how can I do this with Docker for Windows?
  4. Is there anything else different that I should care about.

Answer

David Maze picture David Maze · Jul 6, 2018

I feel like you largely understand the space, and mostly have answers to your questions already. You might find Docker for Mac vs. Docker Toolbox an informative read, even if it's about the Mac equivalent rather than Windows and about Docker packaged as a VM rather than Kubernetes specifically.

  1. In fact you are stuck with the specific version of Kubernetes the Docker Edge desktop distribution publishes.

  2. is answered in the question.

  3. I believe NodePort-type Services are published on your host's IP address; there isn't an intermediate VM address like there is with Docker Toolbox.

  4. Docker Toolbox and minikube always use a full-blown virtual machine with an off-the-shelf hypervisor. The Docker desktop application might use a lighter-weight virtualization engine if one is available.

  5. Kubernetes can involve some significant background work. If you're using Kubernetes-in-Docker it's hard to "turn off" Kubernetes and still have Docker available; but if you have a separate minikube VM you can just stop it.