Containers
A container is a virtualization technology that isolates software along with its dependencies. This helps ensure that an application, or set of services, is portable across different environments and behaves consistently.
While containers are key tools in modern software development, regular Ubuntu users may encounter containers as a way to run certain services locally, such as Jellyfin.
Containers are also increasingly important as ways to sandbox LLM-based development environments and experiments.
Terminal integration on Ubuntu
Docker
Docker is the most well-known container technology and is used to run application containers. It is has a large ecosystem of tools and integrations. Docker uses a root daemon (dockerd) by default. On Windows, Docker Desktop can use WSL as a backend. As Ubuntu is the default distro for WSL, many Windows users run Docker through Ubuntu. See the official Docker website and documentation.
Podman
Podman is a Docker-compatible technology for running application containers. Unlike Docker, Podman is daemonless and runs rootless by default. Its CLI can be used as a like-for-like replacement for docker. Podman is developed and maintained by Red Hat. See the official Podman website and documentation.
LXD
LXD can be used to run system containers and virtual machines. It is used on the backend for other container solutions, namely Workshop. LXD is developed and maintained by Canonical. See the official LXD website and documentation.
Incus
Incus is a community fork of LXD, created after Canonical brought LXD's governance in-house in 2023. It is now maintained under the Linux Containers project. See the official Incus website and documentation.
Distrobox
Distrobox integrates with Podman or Docker to provide full Linux distro environments that integrate with the host OS. It is often used to run tools or applications from other distributions that are not available on the host system. The developer of Distrobox also maintains Lilipod, a minimal alternative to Podman and Docker, which also integrates with Distrobox. See the official Distrobox website, repository, and Lilipod repository.
systemd-nspawn
This is a lightweight, namespace-based container tool built into systemd. See the official documentation.
Workshop
Workshop is a container technology for sandboxed development environments defined in YAML configuration files. It is built on top of LXD and is also maintained by Canonical.
One particular application for Workshop is AI-based development workflows. See the official product page and documentation.
WSL containers
WSL containers are a technology developed by Microsoft for managing Linux containers running within WSL, introduced in public preview in mid-2026. They are accessed through a dedicated CLI tool, wslc.exe, designed to feel familiar to Docker users, along with an API that lets Windows applications run Linux containers as part of their own logic. See the WSL documentation and the announcement post.
Comparison Table
| Tool | Type | Isolation model | Daemon | Root required | Official docs |
|---|---|---|---|---|---|
| Docker | Application container | Process-level, single app per container | Yes (dockerd) | Yes (rootless mode available) | docs.docker.com |
| Podman | Application container | Process-level, Docker-compatible | No (daemonless) | No (rootless by default) | docs.podman.io |
| LXD | System container / VM | Full OS userspace, persistent | Yes (lxd) | Yes (via lxd group) | documentation.ubuntu.com/lxd |
| Incus | System container / VM | Full OS userspace, persistent | Yes (incusd) | Yes (via incus-admin group) | linuxcontainers.org/incus/docs |
| Distrobox | Application/distro environment | Wraps Docker/Podman/Lilipod, integrates with host | Inherits from backend | No (rootless possible) | distrobox.it |
| systemd-nspawn | System container | Chroot-like, minimal | No | Yes | freedesktop.org |
| Workshop | Dev environment | Sandboxed, YAML-defined, agent-oriented | Uses LXD backend | Yes (via LXD) | ubuntu.com/workshop/docs |
| WSL containers | Application container | Process-level, Linux containers on Windows via WSL | Yes (via WSL/wslc) | Varies (policy-controlled) | learn.microsoft.com/windows/wsl |