Minikube is an open-source tool that runs a single-node Kubernetes cluster on your local machine. It is designed for developers and system administrators who want to test Kubernetes workloads, learn cluster operations, or validate configurations without provisioning a full multi-node cluster.
This guide covers how to install and run Minikube on Debian 13 (Trixie) using the Docker driver. We will install Docker, kubectl, and Minikube, then start a cluster, deploy a test application, access the Kubernetes dashboard, and manage cluster lifecycle. All commands are tested against Minikube v1.38.1 with Kubernetes v1.35.1.
Prerequisites
- A server or workstation running Debian 13 (Trixie) with at least 2 CPUs, 2GB RAM, and 20GB free disk space
- A non-root user with sudo privileges
- Internet connectivity for downloading packages and container images
Step 1: Install Docker on Debian 13
Minikube supports multiple drivers including Docker, KVM, and VirtualBox. The Docker driver is the default and recommended option because it requires no hypervisor and runs containers directly. If you need a full guide on installing Docker and Docker Compose on Debian, follow our dedicated article.
Start by updating the package index and installing prerequisite packages.
sudo apt update
sudo apt install -y ca-certificates curl gnupg
Add Docker’s official GPG key and repository.
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Add the Docker repository to your Apt sources.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Install Docker Engine.
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Add your user to the docker group so Minikube can use Docker without sudo.
sudo usermod -aG docker $USER
newgrp docker
Verify Docker is running.
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
Step 2: Install kubectl on Debian 13
kubectl is the command-line tool for interacting with Kubernetes clusters. You need it to create deployments, inspect pods, and manage services. For a full list of commands and shortcuts, check the kubectl cheat sheet for Kubernetes admins.
Download the latest stable kubectl binary.
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
Install kubectl to the system path.
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Verify the installation.
$ kubectl version --client
Client Version: v1.35.1
Kustomize Version: v5.6.0
Step 3: Install Minikube on Debian 13
Download the latest Minikube binary from the official releases page.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
Install the binary to /usr/local/bin/.
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Confirm Minikube is installed.
$ minikube version
minikube version: v1.38.1
commit: bc18bf608397e1b923768e55e4a17bae2ce67e06
Step 4: Start a Minikube Kubernetes Cluster
Start a single-node Kubernetes cluster using the Docker driver. This is the default driver, so no --driver flag is required.
minikube start
Expected output:
* minikube v1.38.1 on Debian 13
* Automatically selected the docker driver
* Using Docker driver with root privileges
* Starting "minikube" primary control-plane node in "minikube" cluster
* Pulling base image v0.0.46 ...
* Downloading Kubernetes v1.35.1 preload ...
* Creating docker container (CPUs=2, Memory=2200MB) ...
* Preparing Kubernetes v1.35.1 on Docker 27.x ...
- Generating certificates and keys ...
- Booting up control plane ...
- Configuring RBAC rules ...
* Configuring bridge CNI (Container Networking Interface) ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
Verify the cluster is running.
$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
Check cluster information with kubectl.
$ kubectl cluster-info
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
List nodes in the cluster.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 60s v1.35.1
Step 5: Deploy a Test Application
Create an Nginx deployment to verify the cluster works end to end.
kubectl create deployment webserver --image=nginx
Wait a few seconds for the pod to start, then check its status.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
webserver-559b886555-xk7pq 1/1 Running 0 30s
Expose the deployment as a NodePort service so it is accessible from outside the cluster.
kubectl expose deployment webserver --type=NodePort --port=80
Check the assigned port.
$ kubectl get service webserver
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
webserver NodePort 10.96.128.105 <none> 80:31245/TCP 10s
Use Minikube to generate the full service URL and open it.
$ minikube service webserver --url
http://192.168.49.2:31245
Test the service with curl.
$ curl -s $(minikube service webserver --url) | head -5
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
Scale the Deployment
Scale the webserver deployment to 3 replicas.
kubectl scale deployment webserver --replicas=3
Verify all replicas are running.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
webserver-559b886555-xk7pq 1/1 Running 0 2m
webserver-559b886555-ab3cd 1/1 Running 0 15s
webserver-559b886555-ef4gh 1/1 Running 0 15s
Step 6: Access the Minikube Kubernetes Dashboard
Minikube ships with the Kubernetes Dashboard addon. Launch it with one command.
minikube dashboard
This enables the dashboard addon if not already active, starts a proxy, and opens the dashboard in your default browser. If you are on a headless server, use the --url flag instead to get the URL without opening a browser.
$ minikube dashboard --url
* Enabling dashboard ...
- Using image docker.io/kubernetesui/dashboard
- Using image docker.io/kubernetesui/metrics-scraper
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:38725/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
If you need remote access to the dashboard, forward the port through SSH.
ssh -L 38725:127.0.0.1:38725 user@your-debian-server
Then open http://127.0.0.1:38725/... in your local browser.
Step 7: Stop, Delete, and Manage the Cluster
Stop the cluster without deleting it. This preserves all deployed workloads and configuration.
minikube stop
Start it again later with minikube start and everything resumes where you left off.
Delete the cluster and all associated data when you no longer need it.
minikube delete
To delete all Minikube profiles and clusters at once.
minikube delete --all
Useful Minikube Commands
| Command | Description |
|---|---|
minikube start | Start or resume the cluster |
minikube stop | Stop the cluster without deleting |
minikube delete | Delete the cluster and all data |
minikube status | Show cluster component status |
minikube dashboard | Open the Kubernetes web dashboard |
minikube ssh | SSH into the Minikube node |
minikube addons list | List available addons and their status |
minikube service <name> --url | Get the URL for a service |
Clean up the test deployment and service before stopping the cluster.
kubectl delete service webserver
kubectl delete deployment webserver
Verify everything is cleaned up.
$ kubectl get pods,svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 10m
Conclusion
We installed Docker, kubectl, and Minikube on Debian 13, started a single-node Kubernetes cluster, deployed an Nginx test application, and accessed the Kubernetes dashboard. Minikube is a practical tool for local development and testing – when you are ready for production multi-node clusters, consider deploying Kubernetes with Rancher or setting up a cluster with kubeadm.