Direct comparison
Apptainer vs Singularity: What Changed
Apptainer is the 2021 Linux Foundation rename of Singularity; SingularityCE is Sylabs' fork of the old name. What this means for your HPC workflow.
Written and maintained by CASRAI Editorial Board
Last updated
Ask CASRAI · included with Regulatory Radar
Ask about Apptainer vs Singularity: What Changed
Ask CASRAI answers research-administration questions and cites the passages behind every claim — and says so when the corpus does not cover something, instead of guessing. It comes with a Regulatory Radar subscription at $29 a month, alongside the daily digest of regulatory changes and the dashboard of what changed.
150 questions a day, on this site, over the API, or inside your own tools through the CASRAI MCP server.
Everything CASRAI publishes — this page, the dictionary, the guides and the news — stays free to read, with no account and no card.
How do Apptainer, SingularityCE compare side by side?
The table below compares Apptainer, SingularityCE across 10 procurement-relevant dimensions, from what it is through where you are likely to meet it.
Side-by-side comparison
| Dimension | Apptainer | SingularityCE |
|---|---|---|
| What it is | The renamed continuation of the original Singularity project, now governed as a Linux Foundation project (rename effective 30 November 2021). | Sylabs Inc.'s own fork of the pre-rename Singularity codebase, which kept the original project name — hence "Singularity Community Edition." |
| Governance | Community-governed open-source project hosted under the Linux Foundation. | Maintained by Sylabs Inc., a commercial company; SingularityCE is their free/open-source edition. |
| Primary command | `apptainer` — but installations also install `singularity` as a symlink to the same binary, so existing scripts keep working unchanged. | `singularity` only — there is no `apptainer` command in a SingularityCE install. |
| Version numbering | Restarted at 1.0 with the November 2021 rename; now on an independent 1.x release series. | Continued the pre-rename Singularity version lineage (3.x), now on its own later major series. |
| How to identify it from the CLI | `apptainer --version` (or `singularity --version` via the symlink) prints a string starting with "apptainer version". | `singularity --version` prints a string starting with "singularity-ce version" — the "-ce" suffix is the tell. |
| Container image format (SIF) | Unchanged at the rename — the project deliberately made no image-format changes, so SIF images stay portable. | Same Singularity Image Format (SIF). An image built on one runs on the other without conversion. |
| Environment variables | Uses `APPTAINER_`/`APPTAINERENV_` prefixes, but falls back to the legacy `SINGULARITY_`/`SINGULARITYENV_` prefixes when the new ones are unset — a transitional compatibility measure the project has flagged it may eventually drop. | Uses `SINGULARITY_`/`SINGULARITYENV_` prefixes natively throughout — no dual-prefix transition to think about. |
| User config directory | Auto-migrates settings (remote endpoints, OCI registry config, PGP keyrings) from `~/.singularity` to `~/.apptainer` the first time it runs — but does not migrate cached OCI blobs/SIF images, so expect a re-pull on first use. | Keeps using `~/.singularity` as-is; no migration step involved. |
| Everyday subcommands (build, exec, run, shell, pull) | Identical syntax to SingularityCE — a workflow written for one runs on the other with only the binary name changing. | Identical syntax to Apptainer, since both trace to the same pre-fork codebase. |
| Where you are likely to meet it | Increasingly the default on clusters whose module stack was refreshed from 2022 onward, and on new HPC deployments. | Still common on clusters that haven't rebuilt their container module since before the rename, or that specifically standardised on Sylabs' distribution. |
Common questions
Common questions about Apptainer vs SingularityCE
Is Apptainer just a renamed version of Singularity?
+
Yes, for the community project lineage: the Singularity project moved to the Linux Foundation and renamed itself Apptainer on 30 November 2021, with Apptainer 1.0 as its first release. Separately, Sylabs — the company behind an earlier fork of Singularity — chose not to rename its own fork, so "Singularity" as a name now refers specifically to Sylabs' SingularityCE line, not the Linux Foundation project.
Which command should I use on my HPC cluster — apptainer or singularity?
+
Either usually works on an Apptainer installation, because `singularity` is kept as a symlink to the `apptainer` binary specifically so existing scripts don't break. On a SingularityCE installation, `apptainer` won't exist at all, so `singularity` is the only option there. If you're writing a job script that needs to run on clusters you don't control, `singularity` is the safer default command name since both projects support it.
How can I tell whether my HPC cluster runs Apptainer or SingularityCE?
+
Run `singularity --version` (or `apptainer --version` if that command exists). The output string tells you directly: Apptainer prints "apptainer version X.Y.Z", while SingularityCE prints "singularity-ce version X.Y.Z". You can also check `module avail` for an `apptainer` module specifically, or ask your HPC support team / consult the cluster's software documentation — most centers document which one they run and why.
Will a container image built for Singularity run under Apptainer, and vice versa?
+
Yes. Both projects use the same Singularity Image Format (SIF), and the Apptainer project explicitly decided not to change anything at the image-format level when it renamed itself — the stated goal was that "containers built with Apptainer will continue to work with installations of Singularity," and the reverse holds too. You do not need to rebuild an image just because the runtime name is different.
Do I need to change my job scripts after a cluster migrates from Singularity to Apptainer?
+
Usually not for basic use — build/exec/run/shell subcommand syntax is unchanged, and the `singularity` command keeps working via the compatibility symlink. The one thing worth checking is any script that sets `SINGULARITY_`/`SINGULARITYENV_` environment variables directly: Apptainer honors these as a fallback today, but the project has flagged that this legacy support is transitional and may eventually be removed, so migrating to the `APPTAINER_`/`APPTAINERENV_` prefixes is the more future-proof choice once you know your cluster has switched.
Going deeper








