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

Rene Gassmoeller rene.gassmoeller at mailbox.org
Thu Mar 2 15:31:48 PST 2017


All,

during the discussion a few weeks back I had the feeling we were 
exchanging arguments from a somewhat theoretical perspective, that is 
why I created a work-in-progress pull request on Github 
(https://github.com/geodynamics/aspect/pull/1402) that provides a 
hands-on look into how such a docker container (and the corresponding 
documentation) might look like for ASPECT.

In fact when updating my somewhat outdated knowledge about Docker I 
found that several of the disadvantages I remembered seem to have been 
resolved in the meantime. I do not want to repeat my arguments on 
github, so please have a look over there when you are interested in the 
topic (you can also subscribe to the discussion on that page to get 
notifications about the progress), but I think that the Docker container 
might really be an alternative to users who: 1. have used a different 
modelling software before, have set up their desktop environment to 
their liking, and would like to try ASPECT, but do not want to spend the 
time to get ASPECT to compile or 2. want to use ASPECT on a regular 
basis, and do not need many modifications, but have serious trouble 
installing ASPECT or its dependencies due to a unusual system (I 
remember spending a day with OpenSUSE a while back). In both of these 
cases a docker container just feels superior to a virtual machine. For 
tutorials I still think Docker containers leave more room for technical 
problems during the tutorial than virtual machines, but I can see from 
an organizer's point of view that building and modifying a docker 
container is much more efficient than a virtual machine (consider though 
that an ASPECT docker container would use around 2-3 GB of space as 
well, not significantly less than a VM).

Anyway, I updated ASPECT's docker container (available under 
https://hub.docker.com/r/gassmoeller/aspect/) and added some 
documentation in the above mentioned pull request on how to use it. I 
would be happy about feedback!


Best,

Rene


On 02/07/2017 09:45 AM, Louise Kellogg wrote:
> Thanks Timo, I have used VMs but am new to docker. We’ve had several suggestions to move tutorials to containers, so these specifics are helpful.
>> On Feb 6, 2017, at 10:42 AM, Timo Heister <heister at clemson.edu> wrote:
>>
>>> 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.
>>
>> Best,
>> Timo
>>
>>
>> -- 
>> Timo Heister
>> http://www.math.clemson.edu/~heister/
>> _______________________________________________
>> Aspect-devel mailing list
>> Aspect-devel at geodynamics.org
>> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel
> _______________________________________________
> Aspect-devel mailing list
> Aspect-devel at geodynamics.org
> http://lists.geodynamics.org/cgi-bin/mailman/listinfo/aspect-devel

-- 
Rene Gassmoeller
http://www.math.colostate.edu/~gassmoel/



More information about the Aspect-devel mailing list