Mark Fernandes edited this page Sep 7, 2016 · 26 revisions

Welcome to the RSE_Docker_course wiki!

(Delivered to RSE Conference September 2016)

What this workshop is about:
The aim is to introduce you to the Docker Container software, to explore it's strengths & weaknesses wrt. other approaches, get some practical experience in how to create simple containers and explore ways in which adopting a docker approach can help you with your research.

What this workshop is not:
You will not go away with a comprehensive knowledge of Docker, GitHub, Docker Hub - you will need to study other resources and ideally learn by doing (or not doing, there is no try :-) )

Workshop A2
Using Docker for Research Software development & deployment Mark Fernandes, Institute of Food Research

A practical introduction to the potential benefits of Docker containers in developing, publishing, distributing and maintaining Research software.

Docker uses a union filesystem created from layers and can provide a complete software ecosystem (container) for your software to run in. It can be deployed to a users machine be it Mac, Windows or Linux without interfering with their configuration in those OSs.

You have tight control over the version/flavour of the OS, what version libraries are installed, web server configurations etc such as they are as required for your software to perform as it did in your organisation. This can facilitate reproducible research. It can also deliver bespoke environments for training courses.

Docker maintain their hub which can provide users a searchable registry to find your work and can provide public hosting of your container in a similar fashon to Github.

We will build some simple containers and incorporate code infrastructure of a variety of types. We also explore ways of exploiting the layer filesystem with respect to software maintenance.

Course equipment prerequisites

  • Laptop (Ideally Windows or MacOS/OSX Linux can be supported but let us know before the session)
  • On a windows or Mac machine install Docker Toolbox Link here
  • On a Linux machine install Docker Engine command line Link here
  • GitHub account Link here (If you have time to try linking the 2 hubs for automated builds & don't have an account)
  • DockerHub account Link here
  • Internet/Wifi access
  • Headphones to listen to video screencasts without disturbing others (Due to time limitations I have omitted these but intend to update the github with links. Headphones are necessary if you don't want to disturb colleagues or get odd looks in the library!)

Advantageous to have (but not essential):

  • Experience with using GitHub if not read this.
  • Some experience using Linux to develop & install software

Mark Fernandes (IFR)