carpentries-incubator / docker-introduction

Reproducible Computational Environments using Containers
https://carpentries-incubator.github.io/docker-introduction/
Other
47 stars 48 forks source link

Potential Docker challenges #59

Open ChristinaLK opened 3 years ago

ChristinaLK commented 3 years ago

There are multiple layers of "difficulties" that are not yet mentioned in the lesson but might be too much for this course at this time. These ideas come from my self-teaching Docker last year to implement my tutorial https://bcrf.biochem.wisc.edu/docker-beginner-for-biologists/

Namely: difficulties raised by docker that would run graphical software:

There are examples and exercises on the 4th lesson here: https://static-bcrf.biochem.wisc.edu/tutorials/docker/Docker_04.html

I only tested those on Mac, but with Xwin32 or MobaXterm it might be possible to run X11 on Windows as well... But this is certainly complicated.

Originally posted by @jsgro in https://github.com/carpentries-incubator/docker-introduction/issues/56#issuecomment-742857181

ChristinaLK commented 3 years ago

Also from @jsgro

Another challenge is about shared directories, at least it's a new one for new Docker 3.0.0 that I updated today from 2.5.x... At least on a Mac, it is not possible for me today to share a folder that is on the Desktop e.g. with $(pwd):/test even if I add this location in the Preferences > Resources > File Sharing. Solution was to move the folder within my /Users/jsgro home folder and then it worked.

aturner-epcc commented 3 years ago

Is X11 really widely used enough to be of general interest here? I would have thought not.

Ports are potentially more useful as we just hit them in passing in the episode where we build a website using Jekyll and there is no real discussion of them. I think the challenge here is being able to cover this in this short lesson as it would also involve introducing concepts around networking and network interfaces which is a rabbit hole we would like to avoid in this introductory lesson I think. Again, it may be worth having a callout that points to useful information on this when we first use the ports option in the Jekyll episode for people to follow up if they are interested.

It is worth remembering that this lesson is an introduction to Docker and a stepping-off point for exploring the use of Docker further rather than a comprehensive introduction to a wide range of use cases and features. At the moment, the lesson fits into a 1 day workshop and I would be loathe to extend it further.

jsgro commented 3 years ago

I totally agree with your comment... X11 is probably not relevant to a lot of people these days... However, this brings a more "philosophical" point: WHY are people going to be interested in Docker (besides the fact that it is a popular topic) and WHAT are they interested to run?

When I first encountered Docker my "Aha" moment was: "Wow now I can run a Linux software on my Mac! (or on Windows)" and also "This is cool because all these software that are complicated to install can now be run from Docker." At that moment I was still very naïve about the (complex) Graphical aspect of this.... But was the point for me at that moment: Using a Docker image to run ONE program (or a short group of related software within like EMBOSS (see other post).)

While searching more about this and trying to figure out what the whole fuss was, I then realized that most of the described applications were not graphical (except perhaps strings of HTTP servers e.g. at Google) but that there was this possibility of running 100's or more containers (and then I got lost by the Kubernetes stories even if I understood the gist of it.)

All that to say that a user's interest in Docker will be fundamentally different if the user is a naive biologist (like me) or e.g. a (bio)physicist or number cruncher that want to run lots of scriptable programs.

A biologist (or naive scientist) will definitely want to try to run ONE specific software... For example I tried to run PyMOL in a docker container and that proved very tricky EVEN if trying to use it without the X11 part... the X11 functionality has to be present to even use it... It is all in my Blog here: https://bcrf.biochem.wisc.edu/2020/03/03/docker-pymol/ PyMOL is a complete python interpreter that can be very useful to manipulate 3D X-ray data (PDB databank.) In the blog I made it work, but it was because i was on my iMac 27"... when I tried to reproduce this on my MacBook Pro it did not work... Reason = different Graphics card.

Still in the Graphics usage: one of my first tests with a docker image was to run a Jupyter Notebook... But nowadays if the image is well documented one should be able to run it (even though many of them have passwords and other complexities.)

ChristinaLK commented 3 years ago

@jsgro I think there's still plenty of biologists out there who want to run scriptable programs! There may be a fundamental difference between those who want to run more GUI based programs versus scriptable, but I don't think that difference is tied to scientific domain - I've met physical scientists/engineers who use GUIs and lots of biologists who use the command line.

I also agree with @aturner-epcc that I don't want to expand the lesson with this particular information (except as an optional "extra" because it's not as broadly applicable to a general audience).

chendaniely commented 3 years ago

@ChristinaLK the web services portion may be less of an issue since those are handled by forwarding the container port to the host machine. e.g., the rocker/rstudio container has a quickstart that looks like this:

docker run --rm -p 8787:8787 -e PASSWORD=yourpasswordhere rocker/rstudio

Talking about ports would take less time than trying to setup a GUI application. I know there are some bioinformatics tools are that only GUI-based so that would be a challenge. Am I interpreting the question correctly when I say the GUI doesn't need to be X11-centric, but really any GUI application?

ChristinaLK commented 3 years ago

This shows up in some of the extras - maybe have a callout about this in episode "More Complex Containers"