docker2singularity
docker2singularity
10K+
Until Docker Hub can provide appropriate deployment permissions, we will not be pushing new versions of docker2singularity here. Instead, please see the containers here (and more up to date verisons) at quay.io/singularity/singularity2docker.
docker2singularityAre you developing Docker images and you would like to run them on an HPC cluster supporting Singularity? Are you working on Mac or Windows with no easy access to a Linux machine? docker2singularity is the simplest way to generate Singularity images. Note that the upcoming Singularity (2.3) release supports import from Docker without sudo, natively, and this is the recommended approach. More information will be provided in the upcoming documentation for 2.3.
No need to download anything from this repository! Simply type:
docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-v D:\host\path\where\to\output\singularity\image:/output \
--privileged -t --rm \
singularityware/docker2singularity \
ubuntu:14.04
Replace D:\host\path\where\to\output\singularity\image with a path on the host filesystem where your Singularity image will be created. Replace ubuntu:14.04 with the docker image name you wish to convert (it will be pulled from Docker Hub if it does not exist on your host system).
docker2singularity uses the Docker daemon located on the host system. It will access the Docker image cache from the host system avoiding having to redownload images that are already present locally.
ENV instruction set. Do not rely on .bashrc, .profile, etc.ENTRYPOINT instruction set pointing to the command line interface to your pipelineCMD - rely only on ENTRYPOINTENTRYPOINT
docker run -i -t --entrypoint /bin/bash bids/example/scratch. Make sure your container runs with the --read-only --tmpfs /run --tmpfs /tmp parameters (this emulates the read-only behavior of Singularity)If you are getting the following error:
docker: Error response from daemon: client is newer than server
You need to use the docker info command to check your docker version and use it to grab the correct corresponding version of docker2singularity. For example:
docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-v D:\host\path\where\to\output\singularity\image:/output \
--privileged -t --rm \
singularityware/docker2singularity:1.11 \
ubuntu:14.04
Currently only the 1.10, 1.11, 1.12, and 1.13 versions are supported. If you are using an older version of Docker you will need to upgrade.
If you are getting WARNING: Non existant bind point (directory) in container: '/shared_fs' or a similar error when running your Singularity image that means that your Singularity images require custom mount points. To make the error go away you can specify the mount points required by your system when creating the Singularity image:
docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-v D:\host\path\where\to\output\singularity\image:/output \
--privileged -t --rm \
singularityware/docker2singularity \
-m "/shared_fs /custom_mountpoint2" \
ubuntu:14.04
This work is heavily based on the docker2singularity work done by vsoch and gmkurtzer. Hopefully most of the conversion code will be merged into Singularity in the future making this container even leaner!
Content type
Image
Digest
Size
125 MB
Last updated
over 6 years ago
docker pull singularityware/docker2singularity