How to run Kubernetes and Docker at the same time on Windows 10 Pro?

10/31/2018

I would like to run Docker instances in my local Kubernetes cloud.

I activated Hyper-V on my Windows 10 Pro to accommodate for Docker. Docker runs fine, I can use the CLI perfectly.

Now I'm trying to run Kubernetes / Minikube. Unfortunately, Minikube gives me an error if I have Hyper-V activated.

If I deactivate Hyper-V and reboot, Docker says that it cannot run without Hyper-V. That seems like a conundrum.

Any tips or suggestions to have both running? I'd like to spin docker images in my local Kubernetes cluster.

Thanks!

-- Camille Lambert
containers
docker
hyper-v
kubernetes
windows

1 Answer

11/2/2018

Seems like you have a problem with the hypervisor usage. I've explained details about using Docker and Kubernetes with each other in one of my recent answers which I will link below.

  • You can't use Kubernetes in Docker and minikube together (or maybe you can if you play with contexts, but I haven't tested it yet and for simplicity lets say you can't) . If you use Docker for your k8s cluster you will interact with your cluster using kubectl, there is no need for using minikube. Just go to Kubernetes -> enable Kubernetes in Docker app and use it according to Docker documentation, here and here in section Kubernetes: enter image description here

  • If you want to use Docker for Windows and minikube, you have to specify the arguments when you run minikube start. In your case you need to use standard way of running minikube for Windows. You can follow this guide for example. When you are ready with the setup you start it with minikube start --vm-driver hyperv --hyperv-virtual-switch "vSwitch name" Note that Hyper-V should be the only hypervisor active. and you can keep using Docker as you did.

  • Third option is using Docker Toolbox for your containers and VirtualBox for minikube which I explained in details in this answer, but it is not a recommended setup if you don't have a specific need.

So the important part here is to decide which tools exactly you want to use. One more important thing, you might get stuck with errors now, and they might be connected to leftovers of minikube. So before you go further remember to revert Docker to factory defaults and delete .minikube and .kube if you meet errors.

-- aurelius
Source: StackOverflow