Skip to content
Français
Conteneurs & Orchestration medium

Incus vs Docker: the differences, and when to choose which

10 min de lecture

Read this page in French

incus logo

Incus and Docker do not do the same job. Docker runs application containers (one process, one image, disposable) to package and distribute an application. Incus runs system containers (a complete, persistent Linux distribution) and virtual machines, in the manner of a lightweight machine. This guide explains the fundamental difference, lays it out in a clear table, and says which tool to choose for which need. For anyone hesitating between the two, or coming from Docker.

What you will learn

  • The fundamental difference: application container against system container.
  • A comparison table, Incus against Docker.
  • Which tool to choose for your use case.
  • That Incus also runs Docker images (OCI).

The fundamental difference

Everything hinges on what a container holds.

A Docker container runs a single process: your application (a web server, an API, a database). The image is built in layers, the container is ephemeral (you throw it away and recreate it), and it holds only what that process strictly needs. No init, no system services, no SSH.

An Incus container runs a complete system: a Linux distribution with its init (systemd, openrc), its services, its users, its logs. It is persistent: you connect to it, administer it, snapshot it, like a small machine. That is the difference between "packaging an application" and "provisioning a machine".

Comparison table

CriterionDockerIncus
Container typeapplication (1 process)system (complete distribution)
Virtual machinesnoyes (QEMU/KVM)
Lifetimeephemeralpersistent
Imagelayered (Dockerfile)distribution (the images: remote)
Accessdocker exec, logsincus shell, like a machine
Init and servicesno (1 process)yes (systemd, openrc)
Typical usedeploy an appprovision a Linux server
OrchestrationKubernetes, Swarmnative Incus clustering

Which tool to choose

The right reflex: start from the need, not from the tool.

Choose Docker (or another application engine) when you want to package and distribute an application: a microservice, a reproducible web stack, a CI/CD build. The ecosystem (Docker Hub, Compose, Kubernetes) is cut out for that.

Choose Incus when you want a Linux machine: a test server, a complete development environment, a homelab, a virtual machine for another kernel or for Windows. You manage the instance as a system, with snapshots and an API, without the weight of a full hypervisor.

Incus also runs Docker images

The boundary is not sealed: since version 6.3, Incus can run OCI images (Docker's format) alongside its system containers. An nginx image from Docker Hub then starts as an application container inside Incus, marked CONTAINER (APP):

Fenêtre de terminal
incus remote add docker https://docker.io --protocol oci
incus launch docker:nginx web

That lets you run application workloads without installing Docker, on the same platform as your system containers and your virtual machines. Details in running OCI containers with Incus.

Can Incus replace Docker

Partly. For a homelab or a development workstation, running your few application services as OCI images inside Incus avoids installing Docker as well, and everything is managed in one place. For intensive application work, though (building images from a Dockerfile, multi-service Compose, Kubernetes integration), the Docker ecosystem stays more complete and better tooled. Incus complements Docker more than it fully replaces it.

Key points

  • Docker means application containers (one process, ephemeral) to package an application.
  • Incus means system containers (a complete, persistent distribution) and virtual machines, to provision machines.
  • You choose on the need: package an app (Docker) or provision a machine (Incus).
  • Since 6.3, Incus also launches OCI images (docker:), marked CONTAINER (APP).
  • The two are often complementary, not competitors.

FAQ: common questions about Incus vs Docker

Next steps

Is this site useful to you?

Fewer than 1% of readers support this site.

I maintain more than 700 free guides, with no ads and no tracking. Any support, even a symbolic one, helps cover hosting and keeps these resources free. Thank you for the help.

The form does not show? Open Ko-fi in a new tab.

Subscribe and follow my DevSecOps work on LinkedIn