LinuxCommandLibrary

incus

Manage virtual machines and containers

TLDR

List all containers and virtual machines (both running and stopped)

$ incus list
copy

Create a container from an image, with a custom name
$ incus create [image] [container_name]
copy

Start or stop an existing container
$ incus [start|stop] [container_name]
copy

Open a shell inside an already running container
$ incus shell [container_name]
copy

Remove a stopped container
$ incus delete [container_name]
copy

Pull an image from an image repository (remote) to local
$ incus copy [remote]:[image] local:[custom_image_name]
copy

List all available images in the official images: remote
$ incus image list images:
copy

List all images already downloaded to the local: remote
$ incus image list local:
copy

SYNOPSIS

incus [options] [subcommand] [subcommand-options] [arguments]
incus help [subcommand]

PARAMETERS

--debug
    
Show debug messages for troubleshooting.


--help
    
Display general help or help for a specific subcommand.


--version
    
Print the Incus client version.


--remote
    
Specify the remote Incus server to connect to.


--project
    
Specify the project within Incus to operate within.


--format
    
Specify the output format (e.g., json, yaml, table).


--quiet
    
Suppress progress indicators and non-essential output.


DESCRIPTION

Incus is an open-source system container and virtual machine manager that provides a unified experience for managing compute workloads. It allows users to run isolated Linux containers (LXC) and virtual machines (KVM) with ease. Incus is a community-driven fork of the LXD project, created to continue its development under a fully open-source model. It integrates with various underlying technologies like LXC, QEMU, ZFS, Btrfs, and Ceph to offer a robust and flexible environment. Incus provides a REST API, a command-line client, and supports features such as live migration, snapshots, image management, network management, and storage pools, making it a powerful tool for developers, system administrators, and cloud environments. It aims to offer a secure, scalable, and intuitive way to manage diverse compute resources.

CAVEATS

Incus is a relatively new fork of LXD, so its community and ecosystem are still developing. While striving for compatibility, some features or configurations might differ from LXD. Compatibility with older LXD configurations and images should be tested. As it's under active development, specific API or CLI features may evolve.

KEY SUBCOMMANDS

Incus operates primarily through subcommands, each managing a specific aspect of containers or VMs. Common subcommands include:
launch: Create and start new instances (containers or VMs).
list: List existing instances, images, networks, or storage pools.
start/stop/restart: Control instance lifecycle.
exec: Run commands inside an instance.
delete: Delete instances, images, networks, or storage pools.
network: Manage Incus networks.
storage: Manage storage pools and volumes.
image: Manage instance images.
config: Manage global Incus configuration and instance-specific settings.

HISTORY

Incus was created in late 2023 as a community fork of Canonical's LXD project. The split occurred due to Canonical's decision to change LXD's licensing and contribute its development solely to Canonical, moving it out of the Linux Containers project. Incus was established under the Linux Containers umbrella, aiming to continue LXD's original vision as a fully open-source, community-driven project, ensuring its long-term availability and development outside of corporate control. It maintains API and feature compatibility with recent LXD versions to facilitate migration for existing users.

SEE ALSO

lxc(1), lxd(1), qemu-system-x86_64(1)

Copied to clipboard