What's the difference between docker and singularity containers?

What are the differences between using docker and singularity in HPC workloads?