[aspect-devel] Interest in providing and using software containers

Timo Heister heister at clemson.edu
Mon Feb 6 10:42:38 PST 2017

> Can you elaborate more on this?  My impression is that VMs work extremely well in tutorials by giving everyone a guaranteed working system, but it can be a bit of a barrier for people to transition to using the software for research on their own after the tutorial. My impression is that containers would help with this because the use environment can be the same during and after the tutorials. On the other hand, your comment suggests that VMs would be better at assuring success during the tutorial itself.

I don't see any advantage in docker for transitioning to using the
software for research. Why do you think so?

A couple of things why I am hesitant to advertise docker:
- The GUI experience is not great. While you can access the files
inside, this is not without problems. Bundling X applications like
paraview blows up the containers (to the point where they are as big
as a vm). I don't have any experience running X applications with
docker on windows but I would expect this to be a problem. This makes
it impossible to use during tutorials and difficult afterwards. The
only exception would be if everything is in jupyter notebooks.
- Docker is ephemeral by default. This means any data is gone after
you exit your container unless you do the extra effort to create data
volumes or mount host directories. This is complicated (need to
understand the differences between containers and images, etc.).
- User accounts/isolation/permissions/mounting is still a problem. If
you mount files inside your docker container, you have to be really
careful about user ids. This is very difficult to understand
especially for novices. Mounting a shared directory using virtualbox
is much easier and also works on windows.
- Security. Using docker requires root access on linux. I am not root
on my workstation in my office so I am unable to use it (without
jumping through hoops). Getting an admin to install virtualbox is easy
(in fact it is installed by default here). Any docker container you
run can take over your system. (Yes, I know you can run docker inside
a vm, docker-machine is great).
- VMs are much easier to understand. How do you explain things like
starting/stopping/deleting containers, retaining files, etc.? Compare
this with the default experience for
http://www.math.clemson.edu/~heister/dealvm/ You download, double
click, hit run and you are greeted with an open firefox windows inside
the vm with information about the software and where to find help. You
can stop and restart whenever you want and you keep all your files.

Don't get me wrong, I use docker a lot (daily), but I think it is only
good for advanced users.


Timo Heister

More information about the Aspect-devel mailing list