This lesson is still being designed and assembled (Pre-Alpha version)

Introduction to Docker for (Data) Scientists

Docker

This lesson is an introduction to Docker for people with a strong foundation in Shell, version control with Git, and programming in either Python or R. The lesson motivates the use of Docker as a development tool for enabling reproducible (data) science workflows.

Prerequisites

This is an intermediate lesson and assumes familiarity with the core materials covered in the Software Carpentry Lessons. In particular learners need to be familiar with material covered in The Unix Shell, Version Control with Git, and either Plotting and Programming in Python or R for Reproducible Scientific Analysis.

Schedule

Setup Download files required for the lesson
09:00 1. Introduction to Docker What is Docker?
What is a Dockerfile?
What is a container image?
What is a container?
What is a container registry and why should I use a registry as part of my research workflow?
Why should I use Docker containers as part of my reseach workflow?
09:20 2. Getting Started with Docker What is the Binder Project?
How does the Binder Project use Docker?
How can I use Binder to create a sharable, interactive, and reproducible research project?
09:55 3. Getting Started with `repo2docker` What is repo2docker?
How does repo2docker use Docker?
How can I build, run, and push Docker images from source code repositories?
10:30 4. Morning Coffee Break
10:45 5. Simplifying Research Development with Docker Compose What is Docker Compose?
How can I use Docker Compose to simplify my research development workflow?
11:25 6. Cookie-Cutter for (Data) Science How can I simplify setting up a (data) science research project with Docker?
12:00 7. Lunch Break
13:00 8. Running Docker Containers Where do Docker images come from?
How do I run a Docker container based on a Docker image?
How do I access a running Docker container?
How do I make my research project files accessible inside a Docker container?
How do a delete a Docker container when I no longer need it?
13:40 9. Building Docker Images How do I build a new Docker image?
How do I push a new Docker image to a container registry?
How do I delete a Docker image when I no longer need it?
14:20 10. Afternoon Coffee Break
14:35 11. Writing Dockerfiles What is a Dockerfile?
How do I write my own Dockerfile?
What are some Dockerfile “best practices”?
15:10 12. Additional Resources Where can I find additional resources on Docker?
As a (data) scientist, what else should I know about Docker?
15:15 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.