Skip to content

Profiles and projects

Profiles make instance configuration reusable. Projects separate groups of resources.

Official docs:

  • Profiles: https://linuxcontainers.org/incus/docs/main/profiles/
  • Projects: https://linuxcontainers.org/incus/docs/main/explanation/projects/

Profiles

A profile can define devices, limits, cloud-init config, security options, and user metadata.

List and inspect:

incus profile list
incus profile show default

Create a profile:

incus profile create lab-small
incus profile set lab-small limits.cpu 2
incus profile set lab-small limits.memory 2GiB

Launch with multiple profiles:

incus launch images:debian/13 app-01 --profile default --profile lab-small

Apply a profile to an existing instance:

incus profile add app-01 lab-small
incus profile remove app-01 lab-small

Check final merged config:

incus config show app-01 --expanded

Profile device example

Add a disk device to a profile:

incus profile device add lab-data data disk pool=default path=/data

Any instance using that profile gets /data.

Profile habits

  • Keep default simple.
  • Make purpose-specific profiles: lab-small, lab-large, lan, docker-capable, vm-small.
  • Avoid hiding too much magic in profiles.
  • Use --expanded when debugging.

Projects

Projects are namespaces. They help separate experiments, teams, labs, or environments.

incus project list
incus project create dev
incus project switch dev
incus project switch default

List instances in a specific project:

incus list --project dev

Launch into a project:

incus launch images:debian/13 dev-test --project dev

Project limits

Projects can have limits for instances, CPU, memory, processes, and storage depending on configuration.

incus project set dev limits.instances 20
incus project set dev limits.memory 32GiB

Show project config:

incus project show dev

When to use what

Use profiles for reusable instance shape:

  • CPU and memory limits;
  • common disks;
  • common NICs;
  • cloud-init defaults.

Use projects for separation:

  • default for stable services;
  • lab for experiments;
  • training for course material;
  • security-lab for isolated security exercises.