---
title: Manage | LXD
description: Manage LXD instances via CLI, REST API, or web UI. Configure storage,
  networking, and multi-tenancy.
url: https://canonical.com/lxd/manage?format=md
---

# Manage LXD

When using LXD, you have several ways to manage your server configuration and your instances: with a simple
command line tool, directly through the REST API, through the web UI or by using third-party tools and
integrations.

---

## LXD CLI

LXD offers an intuitive and crisp CLI for easy operations. To control LXD, you typically use two different
commands: `lxd` and `lxc`. The `lxd` command is used to control the daemon and
is typically used only for initialization and debugging. The `lxc` command is the command-line client
that you use to interact with your instances. See `lxc --help` for an overview of all available
subcommands.

[Get started with the LXD
CLI ›](https://canonical.com/lxd/docs/default/explanation/lxd_lxc/)

---

## LXD REST API

All communication between LXD and its clients happens using a RESTful API over HTTP. This means you can easily
integrate LXD with any other tool you use for managing your infrastructure, and you can easily set up scripts as
needed. LXD implements a single REST API for both local and remote access.

[Learn more about the LXD REST
API ›](https://canonical.com/lxd/docs/default/rest-api/)

---

## LXD graphical user interface (UI)

Starting with LXD 5.21.0 LTS, an official LXD UI tool is now available by default. The UI supports most of the
functionalities surrounding managing instances. More features coming soon.

---

## Try the LXD UI

### 1. Expose LXD server to the host

To access the UI, you need to make sure your LXD server is exposed to the host. You can enable this with:

`lxc config set core.https_address :8443`

---

### 2. Set up the authentication certificates

Access the UI in your browser by entering the server address (for example, https://192.0.2.10:8443) and
follow the authentication steps presented in the UI.

---

## Third-party integrations

Besides using LXD natively, you can also use LXD within external tools. LXD integrations are available for
the following tools:

---

[Juju](https://canonical.com/juju) is an open source orchestration engine for software operators that
enables the deployment, integration and lifecycle management of applications at any scale, on any
infrastructure.

Juju can be used to deploy a variety of workloads across many different clouds and virtualization
providers. It supports both deploying workloads against a LXD server or cluster and using LXD on the
machines it's deploying to separate otherwise colocated services.

Access the [Step-by-Step Guide for LXD](https://documentation.ubuntu.com/juju/3.6/reference/cloud/list-of-supported-clouds/the-lxd-cloud-and-juju/) ›

---

[MAAS](https://maas.io) is an open source server provisioning software tool for your data
centre.

Self-service, remote installation of Windows, CentOS, ESXi and Ubuntu on real servers turns your data
centre into a bare metal cloud.

MAAS integrates with LXD to provide easy creation of virtual machines. It can automatically deploy and
configure LXD as part of the deployment of a physical machine or can be connected to an existing LXD
deployment to dynamically create virtual machines on it.

Read about [how MAAS works](https://canonical.com/maas/how-maas-works) or [MAAS
works](https://canonical.com/maas/tutorials/build-a-maas-and-lxd-environment-in-30-minutes-with-multipass-on-ubuntu) and [try
MAAS and LXD](https://canonical.com/maas/tutorials/build-a-maas-and-lxd-environment-in-30-minutes-with-multipass-on-ubuntu) ›

---

[Ansible](https://www.ansible.com/) is an open source software provisioning, configuration
management and application-deployment tool.

The main integrations between Ansible and LXD are:

---

* A [connection
  plugin](https://docs.ansible.com/ansible/latest/collections/community/general/lxd_connection.html#ansible-collections-community-general-lxd-connection) allowing Ansible to manage a LXD instance just as any other Linux system
* An [inventory
  plugin](https://docs.ansible.com/ansible/latest/collections/community/general/lxd_inventory.html) to detect LXD instances
* A [plugin](https://docs.ansible.com/ansible/latest/collections/community/general/lxd_container_module.html)
  to manage LXD containers
* A [plugin](https://docs.ansible.com/ansible/latest/collections/community/general/lxd_profile_module.html)
  to manage LXD profiles

To manage LXD in Ansible, you need a LXD server (see ["Getting started"](https://canonical.com/lxd/docs/default/getting_started/)).

---

[Terraform](https://www.terraform.io/) is an open source infrastructure-as-code software tool
for configuration and service management.

The LXD integration allows Terraform to deploy instances on LXD servers with support for local and remote
deployments.

Take a look at the [Terraform documentation on
LXD](https://registry.terraform.io/providers/terraform-lxd/lxd/latest/docs) for more information.

To manage LXD in Terraform, you need a LXD server (see ["Getting started"](https://canonical.com/lxd/docs/default/getting_started/)).

---

[Bolt](https://www.puppet.com/docs/bolt/latest/bolt.html) is an open source orchestration tool
that automates the manual work it takes to maintain your infrastructure.

The LXD transport allows for interacting with LXD instances.

For more information, see the [Puppet Bolt
Documentation on LXD](https://www.puppet.com/docs/bolt/latest/bolt_transports_reference.html#lxd).

To manage LXD in Puppet Bolt, you need a LXD server (see ["Getting started"](https://canonical.com/lxd/docs/default/getting_started/)).

---

[Packer](https://www.packer.io/) is an open source tool for creating identical machine images
for multiple platforms.

With Packer's LXD builder, it's possible to re-use your existing cloud image building pipeline and with the
LXD builder, build a LXD container image.

Take a look at the [Packer documentation on LXD](https://www.packer.io/docs/builders/lxd) for
more information.

Additionally our guides about [images](https://canonical.com/lxd/docs/default/images/) and [instance
configuration](https://canonical.com/lxd/docs/default/howto/instances_configure/) might contain useful information regarding image choice, configuration options etc.

To create LXD images in Packer, you need a LXD server (see ["Getting started"](https://canonical.com/lxd/docs/default/getting_started/)).

## [Talk to our LXD experts ›](https://canonical.com/contact-us)

Close

### Let's get in touch.
