Kubernetes on Windows using WSL2 and minikube

Enable WSL (on Windows PowerShell)

wsl --install Ubuntu

Install Docker CE (on WSL Terminal)

Remove previous installed packages

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Add Docker's official GPG key:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Add the repository to Apt sources:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install packages

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verify Installation

sudo docker run hello-world

Configure Docker to accept remote connections

Stop Docker daemon

sudo systemctl stop docker.socket
sudo systemctl stop docker.service

Edit Docker Service configuration from /lib/systemd/system/docker.service, removing the -H parameter:

ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock

Reload service configuration:

sudo systemctl daemon-reload

Enable external acces creating the file: /etc/docker/daemon.json with the following content:

{
  "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}

Start Docker:

sudo service docker start

Install docker cli (on Windows Host)

winget install --id=Docker.DockerCLI -e

Create an environment variable on Windows Host: DOCKER_HOST=tcp://localhost:2375

Test the configuration:

docker ps

Install Minikube (on Windows Host)

Download minikube-windows-amd64.exe binary from: https://github.com/kubernetes/minikube/releases and add to System Path on Windows.

Start Minikube:

minikube start --driver=docker

Install Helm

Download from https://github.com/helm/helm/releases/ and add to the system PATH.

Tags linux docker kubernetes

Back