I work in a genomics team where we sometimes teach people from other labs how to run bioinfo command line tools in Linux. Almost all of them are Windows users and never experienced using Linux. We usually help them set up Linux in dual boot so that they can run the tools later on their own. We also use conda extensively to install bioinformatics tools.
But, the problem is each of them have different kinds of laptop with different configuration. Especially, the bios configuration varies widely in each laptop. It becomes very challenging, tedious, and sometimes frustrating to set up dual boot.
I was thinking about whether it is possible to use docker to make this installation thing simpler and quicker. I have a superficial idea about docker, but not much. I want to...
- Create a docker image that will contain Ubuntu, miniconda, and some bioinfo tools inside the conda.
- Other people will be able to build a docker container in their Windows machine and run the tools in the Ubuntu terminal.
- They will be able to run bash scripts inside docker in Windows.
Thus, we don't have to mess up with their bios and think about data loss, and all other things. I also thought about Windows Sub System for Linux, but some old laptops don't seem to support it. On the other hand, VirtualBox is not also good solution for low-spec laptops.
I am thinking of a solution that will work for all types of laptops ( for Windows users, plus Mac if possible).
Is it possible that Docker will solve all of my requirements? Is it worth to learn Docker for this purpose?
Just 1 thing to consider.
Docker
is great because it provides a way to containerize applications.HOWEVER, many people on computational clusters cannot use it as it requires "sudo" privilege and/or being in a special "Docker" group.
Hence, you may also want to consider Singularity which is preferred for servers/clusters.
https://sylabs.io/
Singularity is a good option but OP explicitly mentions that their users are using their own laptops. On laptops, it's a lot easier to use Docker vs Singularity (at least on macbooks). Plus, singularity works almost seamlessly with docker so I don't think there's a need to push OP towards singularity.
Fair enough