Using docker to distribute Highres Neuroimaging software

I think the answer depends on the objective:

  • If you are looking to distribute a library that is intended to be integrated with other software wrapping it in Docker will make it hard if not impossible. Here building a pypi or conda package makes more sense (although I do not know how are you going to deal with the Java dependency - but do you still need JVM after compilation using JCC?).

  • If you are looking to distribute a command line tool with complex set of dependencies Docker is a good fit.

In other words distributing nilearn in Docker makes little sense, but distributing FMRIPREP in Docker makes more sense.

To answer your other questions:

  • There is no data on what percentage of neuroimagers know how to use Docker. There is however a growing list of publications and training materials that use Docker in context of neuroimaging.

  • Docker is slightly slower than bare metal on Windows and Mac, but runs as fast as native on Linux.