Day 1: Introduction to vind: Why I Replaced KinD with vCluster in Docker [vind]
![Day 1: Introduction to vind: Why I Replaced KinD with vCluster in Docker [vind]](https://cdn.prod.website-files.com/68ad5281556da93bd7179b0e/69af17c56d3d6245a3af1ba8_Day%25201_%2520Introduction%2520to%2520vind%25203.jpeg)
![Day 1: Introduction to vind: Why I Replaced KinD with vCluster in Docker [vind]](https://cdn.prod.website-files.com/68ad5281556da93bd7179b0e/69af17c56d3d6245a3af1ba8_Day%25201_%2520Introduction%2520to%2520vind%25203.jpeg)
If you’ve been working with Kubernetes for a while, you’ve probably used KinD (Kubernetes in Docker). I’ve used it extensively for my local development, CI pipelines, demos, you name it. And for what it does, it works. But I’ve always felt like there was something missing.
That’s why we built vind to solve some of the shortcomings of KinD.
vind stands for vCluster in Docker. It’s a new way to run local Kubernetes clusters using the Docker driver. Instead of spinning up KinD clusters, you use the same vCluster CLI you might already know but pointed at Docker as the backend.
The result? A local Kubernetes cluster that runs entirely in Docker containers, just like KinD, but with a bunch of features that KinD simply does not have.
Overall KinD is great for basic use cases. But the moment you need anything beyond a simple single-node cluster, you start hitting walls:
Here’s what’s happening under the hood when you create a vind cluster:

Your machine runs Docker. Inside Docker, vind creates:
The beauty of this is that each component runs as a regular Docker container. You can inspect them, view logs, and manage them with standard Docker commands.
Here’s how fast you can get a cluster running:
# Install or upgrade the vCluster CLI
brew install loft-sh/tap/vcluster
# or
vcluster upgrade --version v0.32.1
# Set Docker as the driver
vcluster use driver docker
# Create your first cluster
vcluster create my-cluster
That’s it. Three commands and you have a running Kubernetes cluster:
$ vcluster create my-cluster14:58:13 info Using vCluster driver 'docker' to create your virtual clusters, which means the CLI is managing Docker-based virtual clusters locally
14:58:13 info If you prefer to use helm or the vCluster platform API instead, use '--driver helm' or '--driver platform', or run 'vcluster use driver helm' or 'vcluster use driver platform' to change the default
14:58:13 info Ensuring environment for vCluster my-cluster...
14:58:14 done Created network vcluster.my-cluster
14:58:19 warn Load balancer type services are not supported inside the vCluster because this command was executed with insufficient privileges. To enable load balancer type services, run this command with sudo
14:58:20 info Will connect vCluster my-cluster to platform...
14:58:21 info Starting vCluster standalone my-cluster
14:58:23 done Successfully created virtual cluster my-cluster
14:58:23 info Finding docker container vcluster.cp.my-cluster...
14:58:23 info Waiting for vCluster kubeconfig to be available...
14:58:25 info Waiting for vCluster to become ready...
14:58:37 done vCluster is ready
14:58:37 done Switched active kube context to vcluster-docker_my-cluster
- Use `vcluster disconnect` to return to your previous kube context
- Use `kubectl get namespaces` to access the vcluster

Over the next 6 days, I’ll walk you through everything vind can do with real commands, real outputs, and real use cases:
If you’re tired of KinD’s limitations and want a local Kubernetes experience that actually feels production-like, follow along. I think you’ll be surprised at what vind can do.
vind is open source: github.com/loft-sh/vind , so do star the repo if you like vind
Deploy your first virtual cluster today.