diff --git a/doc/.wordlist.txt b/doc/.wordlist.txt index 4168f74632e..2d68776cc19 100644 --- a/doc/.wordlist.txt +++ b/doc/.wordlist.txt @@ -134,6 +134,7 @@ kbit KiB kibi Kibit +Kubernetes KVM lookups Loongarch diff --git a/doc/explanation/instances.md b/doc/explanation/instances.md index 51a8a430394..7571f4fa61a 100644 --- a/doc/explanation/instances.md +++ b/doc/explanation/instances.md @@ -3,17 +3,40 @@ Incus supports the following types of instances: -Containers -: Containers are the default type for instances. - They are currently the most complete implementation of Incus instances and support more features than virtual machines. +Systems Containers +: System containers run full Linux distributions using a shared kernel + Those containers run a full Linux distribution, very similar to a virtual machine but sharing kernel with the host system. - Containers are implemented through the use of `liblxc` (LXC). + They have an extremely low overhead, can be packed very densely and + generally provide a near identical experience to virtual machines + without the required hardware support and overhead. + + System containers are implemented through the use of `liblxc` (LXC). + +Application containers +: Application containers run a single application through a pre-built image + Those kind of containers got popularized by the likes of Docker and Kubernetes. + + Rather than provide a pristine Linux environment on top of which software needs to be installed, + they instead come with a pre-installed and mostly pre-configured piece of software. + + Incus can consume application container images from any OCI-compatible image registry (e.g. the Docker Hub). + + Application containers are implemented through the use of `liblxc` (LXC) with help from `umoci` and `skopeo`. Virtual machines -: {abbr}`Virtual machines (VMs)` are natively supported since version 4.0 of Incus. - Thanks to a built-in agent, they can be used almost like containers. +: {abbr}`Virtual machines (VMs)` are a full virtualized system + Virtual machines are also natively supported by Incus and provide an alternative to system containers. + + Not everything can run properly in containers. Anything that requires + a different kernel or its own kernel modules should be run in a virtual + machine instead. + + Similarly, some kind of device pass-through, such as full PCI devices will only work properly with virtual machines. + + To keep the user experience consistent, a built-in agent is provided by Incus to allow for interactive command execution and file transfers. - Incus uses `qemu` to provide the VM functionality. + Virtual machines are implemented through the use of QEMU. ```{note} Currently, virtual machines support fewer features than containers, but the plan is to support the same set of features for both instance types in the future. diff --git a/doc/howto/instances_create.md b/doc/howto/instances_create.md index 5b99eeb4268..f6fd3e3c2e4 100644 --- a/doc/howto/instances_create.md +++ b/doc/howto/instances_create.md @@ -48,12 +48,22 @@ Check the contents of an existing instance configuration ([`incus config show