Hi All,
I've recently run some in-house training using Docker and images I prepared
for the sessions. This choice was motivated by a combination of reasons,
including
* using the opportunity to introduce Docker and promoting its use
in-house and beyond,
* leaving participants with a system they can continue to work with,
and that can be adapted / extended for their requirements,
* minimising problems caused by conflicts with pre-existing
installations on participants' computers.
I emailed participants ahead of the first session, asking them to install
Docker using the instructions on the Docker website. Also, I included an intro
to Docker at the start of the first session, and the first hands-on was on
starting a Docker container running the image I had prepared.
Installations on Windows proved less straightforward than I anticipated
from my naive Linux perspective. A somewhat major source of problems was
the requirement of Windows 10 Professional or Enterprise for installing
the current Docker Community Edition. A majority of particpants did manage
to get the legacy "Docker Toolbox" to work, but that is rather less of a
smooth install than Docker CE.
Further, I got participants started with a bind mount right from the
start, and the rather longish command line required for that caused more
delays and problems than I had anticipated. My thinking behind this was
that I wanted to avoid people ending up in a state where they wrote
something substantial in the container and then would be unable to
save their work. With the benefit of hindsight now, I consider accepting
that risk for the first stages of the shell lesson, and to introduce
bind mounting after the first coffee break or so.
In conclusion, I would not recommend Docker as a backup unreservedly.
It does require preparation of an image and pushing that to DockerHub,
and installing Docker can turn out to be fiddly and cause delays. However,
as a primary option I think Docker is very good, because (1) it provides
all participants with an identical environment (defined by the image),
and (2) having Docker on their laptop after the workshop enables them to
benefit from many images that are already available. The latter is most
definitely worth having where participants' collaborators and employers
use Docker to provision software and working environments. Another
advantage is that all prerequisite software and data can be bundled up
in one image, eliminating the need for time to allow sorting out setup
problems at the start of python / git / R modules.
Do others have experiences and thoughts regarding Docker-based workshops?
I'm definitely interested.
Best regards, Jan
On Tue, Sep 18, 2018 at 09:49:55AM -0400, Dav Clark via discuss wrote:
> To Tim's point on Docker vs. Python/R installation, I will say that at UC
> Berkeley, prior to the emergence of the JupyterHub approach, some large
> classes were using VM-based solutions. This provides a single positive
> target (get virtualization working) vs. a complex potential target of
> dependency hell - users with multiple versions of R/Python already
> installed, and interacting in confusing ways. We quickly came up with a
> list of known problems and solutions that we kept track of via a local
> mailing list.
>
> The initial requirements (work in low resource / poor internet) are a
> useful point of reference for problems we have not solved at Gigantum...
> but I still think we have a nice solution that provides some of the
> accessibility of binder, while empowering new users to be "producers" of
> their own environments right away.
>
> Regarding the server solution - I wonder if you've thought about just
> putting together a cheap standalone server? Intel NUCs, for example can be
> quite inexpensive, fit in the palm of your hand, have great WiFi (Intel,
> natch), and are modestly upgradable (RAM / storage). Running RStudio on
> such a system serving as an ad-hoc wireless hub would work in most
> locations as long as there is electricity. Single-node JupyterHub is also
> getting quite easy to set up. Or you could literally give everyone a
> raspberry pi who needed one for quite cheap as well! (if only the pi zero
> didn't have the foolishly small HDMI port...). This also avoids security
> concerns with using a mission critical system for supporting students.
>
> Best,
> Dav
>
> On Tue, Sep 18, 2018 at 1:33 AM Tim Head via discuss <
> [email protected]> wrote:
>
> > Hey there,
> >
> > I work on mybinder.org.
> >
> > On Tue, Sep 18, 2018 at 1:41 AM Darya Vanichkina via discuss <
> > [email protected]> wrote:
> >
> >>
> >> Do colaboratory and/or binder and/or any of the other tools deal with
> >> this in an efficient way???
> >>
> >>
> > Speaking for mybinder.org: Technically yes, in practice probably no.
> >
> > The tool we use behind the scenes to turn a repository into a running
> > docker image is https://repo2docker.readthedocs.io/en/latest/ which you
> > can also use locally. However it uses Docker, so if the setup instructions
> > for the carpentry required software aren't working, chances are that
> > installing Docker won't work either.
> >
> > If you install `pip install jupyter-repo2docker` and then run `repo2docker
> > https://github.com/norvig/pytudes/` in a terminal you get exactly what
> > you'd get if you visited https://mybinder.org/v2/gh/norvig/pytudes/master
> >
> > T
> > --
> > Let us be your hub hero https://hubhero.net
> > *The Carpentries <https://carpentries.topicbox.com/latest>* / discuss /
> > see discussions <https://carpentries.topicbox.com/groups/discuss> +
> > participants <https://carpentries.topicbox.com/groups/discuss/members> +
> > delivery
> > options <https://carpentries.topicbox.com/groups/discuss/subscription>
> > Permalink
> > <https://carpentries.topicbox.com/groups/discuss/T963f4b806cda01a2-M6ccddc1067af3173e5dd2fae>
> >
------------------------------------------
The Carpentries: discuss
Permalink:
https://carpentries.topicbox.com/groups/discuss/Td76d2aa1ce58e4c3-M469ef340c531efd1d7aa98a4
Delivery options: https://carpentries.topicbox.com/groups/discuss/subscription