StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Infrastructure as a Service
  4. Virtual Machine Management
  5. LXD vs Vagrant

LXD vs Vagrant

OverviewDecisionsComparisonAlternatives

Overview

Vagrant
Vagrant
Stacks11.9K
Followers7.8K
Votes1.5K
LXD
LXD
Stacks104
Followers194
Votes68

LXD vs Vagrant: What are the differences?

Introduction

LXD and Vagrant are both tools used for managing and deploying virtual machines, but they have some key differences. In this article, we will explore the main differences between LXD and Vagrant.

  1. Execution Environment: LXD is a containerization tool that provides a lightweight and isolated environment for running applications. It uses Linux Containers (LXC) to achieve this. On the other hand, Vagrant is a virtualization tool that creates and manages virtual machines using technologies such as VirtualBox, VMware, or Hyper-V. While LXD focuses on containers, Vagrant focuses on virtual machines.

  2. Resource Overhead: LXD containers have lower resource overhead compared to virtual machines created by Vagrant. LXD containers share the host system's kernel, which reduces the memory and CPU usage. In contrast, virtual machines created by Vagrant require a separate operating system, increasing the resource requirements.

  3. Development Workflow: Vagrant is often used in development workflows to create reproducible environments. Developers can define a Vagrantfile that specifies the required software, dependencies, and configuration for their project. These Vagrantfiles can be version-controlled and easily shared across developers, making it easier to set up consistent development environments. LXD, on the other hand, is more focused on production workloads where containers are deployed for ongoing services.

  4. Networking: LXD provides a powerful networking abstraction that allows containers to be connected to networks with various configurations, such as bridged networks or NAT. This flexibility makes it easier to integrate containers into existing network infrastructures. Vagrant, on the other hand, uses virtual networks to isolate virtual machines and provide network connectivity.

  5. Snapshots and Cloning: LXD provides built-in support for creating snapshots and cloning containers. Snapshots allow you to capture the state of a container at a specific point in time and restore it later if needed. Cloning allows you to create duplicate copies of a container with its complete state. Vagrant also supports snapshots and cloning, but it requires additional plugins or configurations to enable these features.

  6. Integration with Orchestration Tools: LXD integrates well with orchestration tools like Kubernetes or Docker Swarm, making it easier to scale and manage containerized applications in a clustered environment. Vagrant, on the other hand, is more commonly used for managing virtual machines in a development or testing environment and might require additional configurations to work seamlessly with orchestration tools.

In Summary, LXD is a containerization tool that focuses on lightweight and isolated environments, whereas Vagrant is a virtualization tool used for managing and deploying virtual machines with a strong focus on development workflows. LXD has lower resource overhead, provides powerful networking capabilities, and integrates well with orchestration tools.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on Vagrant, LXD

Florian
Florian

IT DevOp at Agitos GmbH

Oct 22, 2019

Decided

lxd/lxc and Docker aren't congruent so this comparison needs a more detailed look; but in short I can say: the lxd-integrated administration of storage including zfs with its snapshot capabilities as well as the system container (multi-process) approach of lxc vs. the limited single-process container approach of Docker is the main reason I chose lxd over Docker.

483k views483k
Comments

Detailed Comparison

Vagrant
Vagrant
LXD
LXD

Vagrant provides the framework and configuration format to create and manage complete portable development environments. These development environments can live on your computer or in the cloud, and are portable between Windows, Mac OS X, and Linux.

LXD isn't a rewrite of LXC, in fact it's building on top of LXC to provide a new, better user experience. Under the hood, LXD uses LXC through liblxc and its Go binding to create and manage the containers. It's basically an alternative to LXC's tools and distribution template system with the added features that come from being controllable over the network.

Boxes;Up And SSH;Synced Folders;Provisioning;Networking;Share;Teardown;Rebuild;Providers
-
Statistics
Stacks
11.9K
Stacks
104
Followers
7.8K
Followers
194
Votes
1.5K
Votes
68
Pros & Cons
Pros
  • 352
    Development environments
  • 290
    Simple bootstraping
  • 237
    Free
  • 139
    Boxes
  • 130
    Provisioning
Cons
  • 2
    Can become v complex w prod. provisioner (Salt, etc.)
  • 2
    Multiple VMs quickly eat up disk space
  • 1
    Development environment that kills your battery
Pros
  • 10
    More simple
  • 8
    Open Source
  • 8
    API
  • 8
    Best
  • 7
    Cluster
Integrations
Amazon EC2
Amazon EC2
Microsoft Azure
Microsoft Azure
DigitalOcean
DigitalOcean
HP Cloud Compute
HP Cloud Compute
Joyent Cloud
Joyent Cloud
Rackspace Cloud Servers
Rackspace Cloud Servers
SoftLayer
SoftLayer
VirtualBox
VirtualBox
LXC
LXC

What are some alternatives to Vagrant, LXD?

Docker

Docker

The Docker Platform is the industry-leading container platform for continuous, high-velocity innovation, enabling organizations to seamlessly build and share any application — from legacy to what comes next — and securely run them anywhere

boot2docker

boot2docker

boot2docker is a lightweight Linux distribution based on Tiny Core Linux made specifically to run Docker containers. It runs completely from RAM, weighs ~27MB and boots in ~5s (YMMV).

LXC

LXC

LXC is a userspace interface for the Linux kernel containment features. Through a powerful API and simple tools, it lets Linux users easily create and manage system or application containers.

Otto

Otto

Otto automatically builds development environments without any configuration; it can detect your project type and has built-in knowledge of industry-standard tools to setup a development environment that is ready to go. When you're ready to deploy, otto builds and manages an infrastructure, sets up servers, builds, and deploys the application.

libvirt

libvirt

It is an open-source API, daemon and management tool for managing platform virtualization. It can be used to manage KVM, Xen, VMware ESXi, QEMU and other virtualization technologies.

rkt

rkt

Rocket is a cli for running App Containers. The goal of rocket is to be composable, secure, and fast.

Azk

Azk

azk lets developers easily and quickly install and configure development environments on their computers.

Vagrant Cloud

Vagrant Cloud

Vagrant Cloud pairs with Vagrant to enable access, insight and collaboration across teams, as well as to bring exposure to community contributions and development environments.

Studio 3T

Studio 3T

It's the only MongoDB tool that provides three ways to explore data alongside powerful features like query autocompletion, polyglot code generation, a stage-by-stage aggregation query builder, import and export, SQL query support and more.

XenServer

XenServer

It is a leading virtualization management platform optimized for application, desktop and server virtualization infrastructures. It is used in the world's largest clouds and enterprises.

Related Comparisons

GitHub
Bitbucket

Bitbucket vs GitHub vs GitLab

GitHub
Bitbucket

AWS CodeCommit vs Bitbucket vs GitHub

Kubernetes
Rancher

Docker Swarm vs Kubernetes vs Rancher

gulp
Grunt

Grunt vs Webpack vs gulp

Graphite
Kibana

Grafana vs Graphite vs Kibana