vCluster in Docker (vind) is KinD (Kubernetes in Docker) alternative with additional features. For source code, see loft-sh/vcluster repo linked below.
See the codeNext-Level Kubernetes Development - Run Kubernetes clusters as Docker containers
Quick Start • Features • Documentation • vs KinD • Examples
vind (vCluster in Docker) is an open-source way to run Kubernetes clusters directly as Docker containers. Built on top of vCluster, vind combines the power of virtual Kubernetes clusters with the simplicity of Docker, creating isolated Kubernetes environments that are perfect for development, testing, and CI/CD pipelines.
Note: vind uses vCluster's Private Nodes mode internally. This is automatically enabled when using the Docker driver and is required for proper operation. This is expected behavior, not a configuration issue.
# Upgrade vCluster CLI to the latest version
vcluster upgrade --version v0.34.0
# Set Docker as the default driver
vcluster use driver docker
# Start vCluster Platform (optional but recommended)
vcluster platform start
This gives you a beautiful web UI to manage your clusters!
Important: If you plan to use the Platform UI, start it before creating clusters. Clusters created before the platform is started will not be automatically synced to the UI. Only clusters created after
vcluster platform startwill appear in the dashboard.
# Create a vCluster in Docker (automatically connects)
vcluster create my-cluster
# Verify it's working
kubectl get nodes
kubectl get namespaces
Integrated management and visibility with a beautiful web interface - no need for external tools!
Pause your clusters when not in use and resume them instantly. Perfect for saving resources during development breaks.
# Pause a cluster
vcluster pause my-cluster
# Resume a cluster
vcluster resume my-cluster
Hassle-free service exposure with automatic LoadBalancer support - works out of the box! (Enabled by default)
Faster image pulls and reduced bandwidth by leveraging your local Docker daemon's image cache. (Enabled by default)
Connect real cloud instances (like EC2, GCP, Azure) as nodes to your local cluster via built-in Tailscale VPN.
Save your entire cluster state to an OCI registry, S3 bucket, or local file — then restore it on any vind cluster. Perfect for sharing reproducible environments or safeguarding demo setups.
# Snapshot to an OCI registry
vcluster snapshot create my-cluster oci://ghcr.io/my-user/my-repo:my-tag
# Snapshot to a local file inside the cluster container
vcluster snapshot create my-cluster container:///data/my-snapshot.tar.gz
# Restore from an OCI registry
vcluster restore my-cluster oci://ghcr.io/my-user/my-repo:my-tag
Choose your own Container Network Interface and Container Storage Interface plugins.
| Feature | vind | KinD |
|---|---|---|
| UI Platform | ✅ Built-in vCluster Platform UI | ❌ Command-line only |
| Sleep/Wake | ✅ Native pause & resume | ❌ Must delete & recreate |
| Load Balancers | ✅ Automatic, works OOB | ❌ Manual setup required |
| Image Caching | ✅ Pull-through via Docker daemon | ❌ Direct registry pulls |
| External Nodes | ✅ Join cloud instances via VPN | ❌ Local only |
| CNI/CSI Choice | ✅ Your choice | ⚠️ Limited |
| Snapshots | ✅ OCI, S3, and local (vCluster 0.34+) | ❌ Not available |
| K8s Upgrades | ✅ In-place, no cluster recreation | ❌ Delete and recreate |
vind supports extensive configuration options. Here's a quick example:
experimental:
docker:
# Custom network
network: "my-custom-network"
# Additional nodes (only name required)
nodes:
- name: worker-1
env:
- "CUSTOM_VAR=value"
# Load balancer and registry proxy are enabled by default
# Custom ports
ports:
- "8080:80"
# Custom volumes
volumes:
- "/host/path:/container/path"
# Extra Docker args
args:
- "--cap-add=SYS_ADMIN"
👉 Full configuration reference
Check out our examples directory for:
Create isolated Kubernetes environments for each developer or feature branch.
Spin up temporary clusters for testing and tear them down when done. Use the official setup-vind GitHub Action to integrate vind into your workflows.
Perfect for learning K8s without the overhead of managing a full cluster.
Test your applications in a real Kubernetes environment before deploying.
Join cloud resources to your local cluster for hybrid development scenarios.
# Create a cluster (automatically connects)
vcluster create my-cluster
# List clusters
vcluster list
# Connect to a cluster
vcluster connect my-cluster
# Disconnect from a cluster
vcluster disconnect my-cluster
# Pause a cluster (save resources)
vcluster pause my-cluster
# Resume a cluster
vcluster resume my-cluster
# Delete a cluster
vcluster delete my-cluster
# Describe cluster
vcluster describe my-cluster
# Snapshot cluster state (OCI, S3, or local)
vcluster snapshot create my-cluster oci://ghcr.io/my-user/my-repo:my-tag
vcluster snapshot create my-cluster s3://my-bucket/my-key
vcluster snapshot create my-cluster container:///data/my-snapshot.tar.gz
# Restore cluster from snapshot
vcluster restore my-cluster oci://ghcr.io/my-user/my-repo:my-tag
# View control plane logs
docker exec vcluster.cp.my-cluster journalctl -u vcluster --nopager
# View node logs (for node named worker-1)
docker exec vcluster.node.my-cluster.worker-1 journalctl -u kubelet --nopager
vind is built on top of vCluster. The core code lives in the vCluster repository.
This repository serves as:
To contribute to the core feature, please see the vCluster contributing guide.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Made with ❤️ by the Kubernetes community
7,083 followers · starred Feb 2026
492 followers · starred Feb 2026
306 followers · starred Aug 2026
27 followers · starred Jul 2026
vCluster in Docker (vind) is KinD (Kubernetes in Docker) alternative with additional features. For source code, see loft-sh/vcluster repo linked below.
See the codeNext-Level Kubernetes Development - Run Kubernetes clusters as Docker containers
Quick Start • Features • Documentation • vs KinD • Examples
vind (vCluster in Docker) is an open-source way to run Kubernetes clusters directly as Docker containers. Built on top of vCluster, vind combines the power of virtual Kubernetes clusters with the simplicity of Docker, creating isolated Kubernetes environments that are perfect for development, testing, and CI/CD pipelines.
Note: vind uses vCluster's Private Nodes mode internally. This is automatically enabled when using the Docker driver and is required for proper operation. This is expected behavior, not a configuration issue.
# Upgrade vCluster CLI to the latest version
vcluster upgrade --version v0.34.0
# Set Docker as the default driver
vcluster use driver docker
# Start vCluster Platform (optional but recommended)
vcluster platform start
This gives you a beautiful web UI to manage your clusters!
Important: If you plan to use the Platform UI, start it before creating clusters. Clusters created before the platform is started will not be automatically synced to the UI. Only clusters created after
vcluster platform startwill appear in the dashboard.
# Create a vCluster in Docker (automatically connects)
vcluster create my-cluster
# Verify it's working
kubectl get nodes
kubectl get namespaces
Integrated management and visibility with a beautiful web interface - no need for external tools!
Pause your clusters when not in use and resume them instantly. Perfect for saving resources during development breaks.
# Pause a cluster
vcluster pause my-cluster
# Resume a cluster
vcluster resume my-cluster
Hassle-free service exposure with automatic LoadBalancer support - works out of the box! (Enabled by default)
Faster image pulls and reduced bandwidth by leveraging your local Docker daemon's image cache. (Enabled by default)
Connect real cloud instances (like EC2, GCP, Azure) as nodes to your local cluster via built-in Tailscale VPN.
Save your entire cluster state to an OCI registry, S3 bucket, or local file — then restore it on any vind cluster. Perfect for sharing reproducible environments or safeguarding demo setups.
# Snapshot to an OCI registry
vcluster snapshot create my-cluster oci://ghcr.io/my-user/my-repo:my-tag
# Snapshot to a local file inside the cluster container
vcluster snapshot create my-cluster container:///data/my-snapshot.tar.gz
# Restore from an OCI registry
vcluster restore my-cluster oci://ghcr.io/my-user/my-repo:my-tag
Choose your own Container Network Interface and Container Storage Interface plugins.
| Feature | vind | KinD |
|---|---|---|
| UI Platform | ✅ Built-in vCluster Platform UI | ❌ Command-line only |
| Sleep/Wake | ✅ Native pause & resume | ❌ Must delete & recreate |
| Load Balancers | ✅ Automatic, works OOB | ❌ Manual setup required |
| Image Caching | ✅ Pull-through via Docker daemon | ❌ Direct registry pulls |
| External Nodes | ✅ Join cloud instances via VPN | ❌ Local only |
| CNI/CSI Choice | ✅ Your choice | ⚠️ Limited |
| Snapshots | ✅ OCI, S3, and local (vCluster 0.34+) | ❌ Not available |
| K8s Upgrades | ✅ In-place, no cluster recreation | ❌ Delete and recreate |
vind supports extensive configuration options. Here's a quick example:
experimental:
docker:
# Custom network
network: "my-custom-network"
# Additional nodes (only name required)
nodes:
- name: worker-1
env:
- "CUSTOM_VAR=value"
# Load balancer and registry proxy are enabled by default
# Custom ports
ports:
- "8080:80"
# Custom volumes
volumes:
- "/host/path:/container/path"
# Extra Docker args
args:
- "--cap-add=SYS_ADMIN"
👉 Full configuration reference
Check out our examples directory for:
Create isolated Kubernetes environments for each developer or feature branch.
Spin up temporary clusters for testing and tear them down when done. Use the official setup-vind GitHub Action to integrate vind into your workflows.
Perfect for learning K8s without the overhead of managing a full cluster.
Test your applications in a real Kubernetes environment before deploying.
Join cloud resources to your local cluster for hybrid development scenarios.
# Create a cluster (automatically connects)
vcluster create my-cluster
# List clusters
vcluster list
# Connect to a cluster
vcluster connect my-cluster
# Disconnect from a cluster
vcluster disconnect my-cluster
# Pause a cluster (save resources)
vcluster pause my-cluster
# Resume a cluster
vcluster resume my-cluster
# Delete a cluster
vcluster delete my-cluster
# Describe cluster
vcluster describe my-cluster
# Snapshot cluster state (OCI, S3, or local)
vcluster snapshot create my-cluster oci://ghcr.io/my-user/my-repo:my-tag
vcluster snapshot create my-cluster s3://my-bucket/my-key
vcluster snapshot create my-cluster container:///data/my-snapshot.tar.gz
# Restore cluster from snapshot
vcluster restore my-cluster oci://ghcr.io/my-user/my-repo:my-tag
# View control plane logs
docker exec vcluster.cp.my-cluster journalctl -u vcluster --nopager
# View node logs (for node named worker-1)
docker exec vcluster.node.my-cluster.worker-1 journalctl -u kubelet --nopager
vind is built on top of vCluster. The core code lives in the vCluster repository.
This repository serves as:
To contribute to the core feature, please see the vCluster contributing guide.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Made with ❤️ by the Kubernetes community
7,083 followers · starred Feb 2026
492 followers · starred Feb 2026
306 followers · starred Aug 2026
27 followers · starred Jul 2026