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:
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:
Apply a profile to an existing instance:
Check final merged config:
Profile device example
Add a disk device to a profile:
Any instance using that profile gets /data.
Profile habits
- Keep
defaultsimple. - Make purpose-specific profiles:
lab-small,lab-large,lan,docker-capable,vm-small. - Avoid hiding too much magic in profiles.
- Use
--expandedwhen debugging.
Projects
Projects are namespaces. They help separate experiments, teams, labs, or environments.
List instances in a specific project:
Launch into a project:
Project limits
Projects can have limits for instances, CPU, memory, processes, and storage depending on configuration.
Show project config:
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:
defaultfor stable services;labfor experiments;trainingfor course material;security-labfor isolated security exercises.