With Digi Embedded Yocto you can use:

  • LXC

    LXC, or Linux Containers, is a virtualization technology that enables the execution of multiple isolated Linux systems (containers) on a single host. Unlike traditional virtual machines that emulate entire hardware stacks, LXC specializes in operating system-level virtualization. It provides a lightweight environment that shares the host’s kernel while ensuring process and network isolation.

  • Podman

    Podman is a daemonless container engine for building, managing, and running Open Container Initiative (OCI) containers and container images. For many day-to-day tasks, Podman commands are intentionally equivalent to Docker commands.

  • Docker

    Docker is a powerful tool for building, deploying, and managing applications using containers. Docker provides a platform and ecosystem for developers and system administrators to create, distribute, and run containerized applications efficiently.

Comparison between LXC, Podman, and Docker

Abstraction level

  • LXC operates at a lower level of abstraction compared to Docker and Podman. It provides lightweight operating system-level virtualization, allowing you to run multiple isolated Linux containers on a single host.

  • Podman provides a high-level abstraction for packaging, distributing, and running applications as containers. Podman does not require a long-running daemon; it is daemonless.

  • Docker builds on top of the container runtime containerd and adds additional tools and features for container management, image distribution, and application deployment. Docker provides a higher-level abstraction for packaging, distributing, and running applications as containers.

Tooling and ecosystem

  • LXC is more focused on providing the core functionality for running Linux containers. While there are tools available for managing LXC containers, the ecosystem is not as extensive as Docker’s.

  • Podman is part of the Open Container Initiative (OCI) ecosystem and works with standard container images and registries while following a daemonless model.

  • Docker provides a comprehensive set of tools and a rich ecosystem for building, packaging, and deploying containerized applications. This includes Docker Engine, Docker Compose, Docker Swarm, Docker Hub, and Docker Enterprise Edition.

Workflow

  • LXC is typically used more for system-level containerization, where you directly interact with the container runtime tools and manage containers using traditional Linux commands and utilities.

  • Podman provides a workflow that is very similar to Docker for building, running, and distributing OCI containers. This makes it easier to migrate Docker-based workflows to Podman.

  • Docker promotes a developer-friendly workflow with its Dockerfile format for defining container images, Docker Compose for defining multi-container applications, and Docker Hub for sharing and discovering container images.

Portability

  • LXC containers are more tightly coupled to the host system’s kernel and may not be as portable across different Linux distributions or kernel versions.

  • Podman containers are highly portable because they use OCI image formats and standard container registries.

  • Docker containers are highly portable and can run on any system that supports Docker Engine, regardless of the underlying infrastructure.

Security

  • LXC provides basic isolation and security features at the operating system level, but additional security measures may need to be implemented manually depending on the specific use case.

  • Podman benefits from the OCI container model and, because it is daemonless, reduces the attack surface associated with a long-running central daemon.

  • Docker provides additional security features such as image signing, scanning, and secret management through its ecosystem.

Summary

Docker is often preferred for application-level containerization and developer-focused workflows. Podman offers a similar application-level workflow while using a daemonless architecture. LXC is more suitable for system-level containerization and environments where low-level control is important.