tutor: Introduction to Docker and Singularity edition: 5th
-->
Hello and welcome to our @tutor workshop! We are very happy to have you here.
This is the @edition edition of this workshop, jointly organised by VIB and ELIXIR.
We are using the interactive Open Educational Resource online/offline course infrastructure called LiaScript. It is a distributed way of creating and sharing educational content hosted on github. To see this document as an interactive LiaScript rendered version, click on the following link/badge: LiaScript
This repository contains the materials (exercises) for the workshop on containers of May 20, 2021. We will focus on Docker and Singularity. Subsequent editions have taken place in January and October 2022 and March 2023, October 2023 and February 2024.
Some exercises are inspired upon the examples from Microsoft Azure ML github repo. The content of this repo is licensed with MIT license.
Other exercises are co-created with the Code Reproducibility team of the ELIXIR network
The presentations which goes alongside this material can be found in the Lesson overview: Slides .
Schedule day 1:
- 9:30 - 11:00 - session Introduction to Docker
- 11:00 - 11:15 - break
- 11:15 - 12:45 - session Docker
- Registries
- Running
- 12:45 - 13:45 - lunch
- 13:45 - 15:15 - session Docker
- Mounts
- Ports
- 15:15 - 15:30 - break
- 15:30 - 17:00 - session Docker recipes
- Building
Schedule day 2:
- 9:30 - 11:00 - recap day 1
- Bring the pieces together - exercise 5
- 11:00 - 11:15 - break
- 11:15 - 12:45 - session Introduction to Singularity
- 12:45 - 13:45 - lunch
- 13:45 - 15:15 - session Singularity on the HPC
- 15:15 - 15:30 - break
- 15:30 - 17:00 - session Singilarity recipes
{
"@context": "https://schema.org/",
"@type": "LearningResource",
"@id": "https://elixir-europe-training.github.io/ELIXIR-TrP-TeSS/",
"http://purl.org/dc/terms/conformsTo": {
"@type": "CreativeWork",
"@id": "https://bioschemas.org/profiles/TrainingMaterial/1.0-RELEASE"
},
"description": "Introduction to Docker and Apptainer",
"keywords": "Docker, Containers, Recipes, Singularity",
"name": "Introduction to Docker and Apptainer",
"license": "https://creativecommons.org/licenses/by/4.0/",
"educationalLevel": "beginner",
"competencyRequired": "none",
"teaches": [
"Define what containers are and articulate the differences between Docker and Singularity.",
"Identify the components of a Docker recipe and correlate with the layers within a Docker image.",
"List the benefits of containerization, considering reproducibility, usage and installation.",
"Recognize the use cases where Docker is the preferred method for deploying applications.",
"Discuss case studies to justify the selection of Docker or Singularity for specific deployment scenarios."
],
"audience": "researchers",
"inLanguage": "en-US",
"learningResourceType": [
"tutorial"
],
"author": [
{
"@type": "Person",
"name": "Bruna Piereck"
},
{
"@type": "Person",
"name": "Alexander Botzki"
}
],
"contributor": [
{
"@type": "Person",
"name": "Christof De Bo"
}
]
}
License: Creative Commons Attribution 4.0 International License
Target Audience: Researchers
Level: Beginner
Prerequisites
To be able to follow this course, learners should have knowledge in:
- Knowledge of Command line Interface is a plus
Description The course will give an introduction to containers (Docker & Apptainer) which are great components to achieve portability and reproducibility of your analysis. You will learn how to use containers and how to build a container from scratch, share it with others and how to re-use and modify existing containers. After an extensive explanation on Docker containers, the Apptainer application, previously Singularity, and its use in the HPC will be highlighted as well.
Learning Outcomes:
By the end of the course, learners will be able to:
- Define what containers are and articulate the differences between Docker and Singularity. [Knowledge]
- Discuss case studies to justify the selection of Docker or Singularity for specific deployment scenarios. [Knowledge]
- Assess the ease-of-use and user-friendliness of Docker and Singularity for deploying complex applications. [Knowledge and Comprehension]
- Identify the components of a Docker recipe and correlate with the layers within a Docker image. [Knowledge and Comprehension]
- List the benefits of containerization, considering reproducibility, usage and installation. [Knowledge]
- Recognize the use cases where Docker is the preferred method for deploying applications. [Knowledge]
- Analyze the components of a Docker recipe and their impact on container performance and storage. [Comprehension]
- Summarize the process of writing a Docker recipe, building Docker images, and running containers. [Synthesis]
- Explain the importance of Docker caching and working with I/O volumes in containerized environments. [Comprehension]
- Compare advantages and disadvantages of Docker and Singularity for specific use cases, including distribution methods and safety. [Knowledge and Comprehension]
- Apply Docker commands and utilize Docker containers to deploy web applications and analysis tools [Apply]
- Develop Docker recipes and Singularity images tailored to the needs of different analysis pipelines. [Apply]
- Creating Singularity images based on Docker recipes for running in an HPC environment [Apply]
Check more about Bloom's taxonomy to categorize the levels in educational goals
Time estimation: 480 minutes
Requirements: The (technical) installation requirements are described in the Chapters overview section Getting ready.
Supporting Materials:
Acknowledgement:
Funding: This project has received funding from VIB.
PURL: https://zenodo.org/badge/DOI/10.5281/zenodo.14231766.svg
Authors
Contributors
- we welcome contributors for these materials
Please cite as:
- to be added once we have released the first DOI
Here are some great tips for learning and to get inspired for your own use:
About ELIXIR Training Platform
The ELIXIR Training Platform was established to develop a training community that spans all ELIXIR member states (see the list of Training Coordinators). It aims to strengthen national training programmes, grow bioinformatics training capacity and competence across Europe, and empower researchers to use ELIXIR's services and tools.
One service offered by the Training Platform is TeSS, the training registry for the ELIXIR community. Together with ELIXIR France and ELIXIR Slovenia, VIB as lead node for ELIXIR Belgium is engaged in consolidating quality and impact of the TeSS training resources (2022-23) (https://elixir-europe.org/internal-projects/commissioned-services/2022-trp3).
The Training eSupport System was developed to help trainees, trainers and their institutions to have a one-stop shop where they can share and find information about training and events, including training material. This way we can create a catalogue that can be shared within the community. How it works is what we are going to find out in this course.
About VIB and VIB Technologies
VIB is an entrepreneurial non-profit research institute, with a clear focus on groundbreaking strategic basic research in life sciences and operates in close partnership with the five universities in Flanders – Ghent University, KU Leuven, University of Antwerp, Vrije Universiteit Brussel and Hasselt University.
As part of the VIB Technologies, the 12 VIB Core Facilities, provide support in a wide array of research fields and housing specialized scientific equipment for each discipline. Science and technology go hand in hand. New technologies advance science and often accelerate breakthroughs in scientific research. VIB has a visionary approach to science and technology, founded on its ability to identify and foster new innovations in life sciences.
The goal of VIB Technology Training is to up-skill life scientists to excel in the domains of VIB Technologies, Bioinformatics & AI, Software Development, and Research Data Management.
Editorial team for this course
Authors: @orcid(Alexander Botzki), @orcid(Bruna Piereck)
Technical Editors: Alexander Botzki