charliecloud - Man Page

Lightweight user-defined software stacks for high-performance computing

What is Charliecloud?

Charliecloud is a lightweight, fully unprivileged, open source container implementation for HPC applications. It can handle the entire container workflow, including building images, pushing/pulling to registries, dealing with accelerators like GPUs.

Charliecloud uses Linux user namespaces to run containers with no privileged operations or daemons and minimal configuration changes on center resources. This simple approach avoids most security risks while maintaining access to the performance and functionality supercomputers already offer.

Charliecloud takes a unique approach to containerization while remaining compatible with the broader container ecosystem where it matters. Notable distinctions include:

The “Philosophy of Charliecloud”

We develop Charliecloud under what we call “the philosophy of Charliecloud”, which is a set of three principles to guide our work, namely:

  1. Be transparent, not opaque. For example, in Charliecloud, containers are regular files and directories rather than a novel storage format. We aim to be compatible with standard UNIX tools and conventions. We assume the user is intelligent but unfamiliar with Charliecloud internals, and we are honest and straightforward with them about what is going on. We try to be explicit, rather than implicit or magical (too much “magic” leads to over-helping and confusion).
  2. Be simple, not complex. In Charliecloud, containers are just user processes. We use the minimum namespaces and implement only the right features; Charliecloud is far smaller in lines of code than competitors. We use technology familiar to HPC people and minimize dependencies. We embrace UNIX: “make each program do one thing well”. (UNIX traditions and concepts have staying power for a reason.) In particular, we don’t re-invent, re-build, and/or re-optimize what HPC has already done.
  3. Be unprivileged. Writing secure code is difficult and risky, so we don’t do it. Charliecloud does not maintain a security boundary. Instead, we trust the kernel and let it enforce security, just like HPC has done for years. Thus, Charliecloud stays fully unprivileged, with no root, no sudo, and no setuid or setcap helper programs.

How Do I Learn More?

Who is Responsible?

Contributors:

How Can I Participate?

Use our GitLab page: https://gitlab.com/charliecloud

Bug reports and feature requests should be filed as “Issues”. Questions, comments, support requests, and everything else should use our “Discussions”. Don’t worry if you put something in the wrong place; we’ll be more than happy to help regardless.

We also have mailing lists for users and developers: https://lists.charliecloud.io

Patches are much appreciated on the software itself as well as documentation. Optionally, please include in your first patch a credit for yourself in the list above.

We are friendly and welcoming of diversity on all dimensions.

Technical Publications

If Charliecloud helped your research, or it was useful to you in any other context where bibliographic citations are appropriate, please cite the following open-access paper:

Reid Priedhorsky and Tim Randles. “Charliecloud: Unprivileged containers for user-defined software stacks in HPC”, 2017. In Proc. Supercomputing. DOI: 10.1145/3126908.3126925.

Note: This paper contains out-of-date number for the size of Charliecloud’s code. Please instead use the current number in the FAQ.

Other publications:

License and Intellectual Property

Charliecloud is open source software; you can redistribute it and/or modify it under the terms of the Apache License, Version 2.0. A copy is included in file LICENSE. You may not use this software except in compliance with the license.

Copyrights and patents are retained by contributors. No copyright assignment is required to contribute to Charliecloud. Please use the Git history to determine copyright for any specific contribution.

Notable copyright holders include:

Reporting bugs

If Charliecloud was obtained from your Linux distribution, use your distribution’s bug reporting procedures.

Otherwise, report bugs to: https://github.com/hpc/charliecloud/issues

See Also

ch-checkns(1), ch-completion.bash(7), ch-convert(1), ch-fromhost(1), ch-image(1), ch-run(1), ch-run-oci(1), ch-test(1),

Full documentation at: https://hpc.github.io/charliecloud

Note

These man pages are for Charliecloud version 0.42 (Git commit 0.42).

Referenced By

ch-checkns(1), ch-convert(1), ch-fromhost(1), ch-image(1), ch-run(1), ch-run-oci(1), ch-test(1).

2025-11-04 00:00 UTC 0.42 Charliecloud