When running incus list it will show all the container/vm’s network interfaces that have an IP address assigned. Incus does the magic itself for containers, and incus-agent does it for VMs.
So if the VM is running docker, you will see all the docker bridges, which can be a lot as one is created per compose. You might also see virtual interfaces used for other purposes.
In my opinion those aren’t relevant to incus, they are “private” to the instance, and unless they are bridged to the “physical” interface of the VM/LXC they truly are of no consequences to the outside.
But more importantly it makes incus list unpleasant to read when an entry with 20 lines ruins the table!
Is there a way to hide them? Is there a reason why they are even listed in the first place?
There are quite a few situations where you actually do care about the other devices. For example when the container creates actual bridged networks which include the primary NIC, or VLAN devices as well as situations where traffic is routed into the container for use by other otherwise independent bridges or interfaces in there.
So that’s why we generally don’t try to be too smart about it and other than stripping the loopback devices, the rest is just shown to the user.
That said, it should be possible to filter things based on the API response as the external facing interfaces will have a host_name key set, at least in most common cases (anything using macvlan, ipvlan, sr-iov, physical, … will not have that key and can’t be tracked down).
It should be possible to add --host-interfaces flag to incus list to do such filtering and possibly add a new config field as well to allow making that behavior the default in config.