Charliecloud vs LXC
Charliecloud
charliecloud.ioLXC
linuxcontainers.orgSide by side
| Figure | Charliecloud | LXC |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Container Engines | 7.9 (#10) | 7.6 (#15) |
| Spec score · Container Runtime Software | 8.0 (#12) | 7.6 (#17) |
| Installation | Charliecloud can be built from a release tarball or Git checkout and is also available through package managers including Spack and Fedora/EPEL. | LXC is included in most Linux distributions and is generally installed through the distribution package manager. |
| Purpose | Charliecloud is a lightweight, fully unprivileged, open source container implementation for high performance computing applications. | LXC is a userspace interface to Linux kernel containment features for creating and managing system or application containers. |
Plans
In their own words
Charliecloud
Charliecloud is free, open-source container software for high-performance computing on Linux. It runs containers without privileged operations or daemons by using Linux user namespaces, with minimal configuration changes on computing-center resources. Users can build images, push and pull them to registries, and use accelerators such as GPUs. Its layer-free build cache is based on Git rather than union-mount filesystems and tarballs, and Dockerfiles are parsed with a formal grammar. The ch-image tool supports registry authentication and registries including GitLab Container Registry. At runtime, ch-run can inject host resources through the Container Device Interface, including NVIDIA GPUs and Cray networking. Installation is available from a release tarball, Git checkout, Spack, or Fedora/EPEL. Charliecloud requires Linux user namespaces and has been run on x86-64, ARM, and Power; current testing covers x86_64 and ARM. It is distributed under Apache License, Version 2.0. The project supports only the current release and provides no internal security boundary.
LXC
LXC is free software for creating and managing Linux system or application containers through Linux kernel containment features. It aims to make each container resemble a standard Linux installation without a separate kernel. The project includes the liblxc library, container control tools, distribution templates and API bindings for Python 3, Lua, Go, Ruby and Haskell. Process containment uses kernel namespaces, AppArmor and SELinux profiles, seccomp policies, chroots, kernel capabilities and cgroups. Unprivileged containers map container root to an unprivileged host user. LXC is included in most Linux distributions and is generally installed through the distribution package manager. Listed requirements include a supported C library and Linux kernel 2.6.32 or later. LXC 7.0 and 6.0 are listed as long-term support releases through June 1, 2031 and June 1, 2029. Most code uses GNU LGPLv2.1+, with some BSD 2-clause or GNU GPLv2 components.