How are docker and singularity different?

Singularity is a container runtime that originated out of the HPC world. You can run Docker images similarly to docker run via

singularity exec docker://atlas/analysisbase bash

The main advantage has been that singularity does not use a daemon process and is usable by non-root users on e.g. a shared cluster such as LXPLUS. A disadvantage is that there is a slight mismatch between the two, as singularity did not conform to the Open Container Initiative (OCI) standard for container runtimes (e.g. in singularity the filesystem is mostly read-only). In recent releases (singularity 3.X) this is starting to change.