Skip to content

vibbits/containers-workshop

Repository files navigation

-->

Introduction to Containers workshop

{
  "@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"
    }
  ]
}

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.

Example image to ilustrate the front page of the material. This image was designed by Bruna Piereck.

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

General context

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 .

Proposed Schedule

Schedule day 1:

  • 9:30 - 11:00 - session Introduction to Docker
    • Focus on Large Language Models (LLMs)
  • 11:00 - 11:15 - break
  • 11:15 - 12:45 - session Docker
    • ...
    • ...
  • 12:45 - 13:45 - lunch
  • 13:45 - 15:15 - session Docker
    • ...
    • ...
  • 15:15 - 15:30 - break
  • 15:30 - 17:00 - session Docker recipes
    • ...

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 Generative AI
    • ...
  • 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
    • ...

Lesson overview

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:

  1. 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:

  1. Define what containers are and articulate the differences between Docker and Singularity. [Knowledge]
  2. Discuss case studies to justify the selection of Docker or Singularity for specific deployment scenarios. [Knowledge]
  3. Assess the ease-of-use and user-friendliness of Docker and Singularity for deploying complex applications. [Knowledge and Comprehension]
  4. Identify the components of a Docker recipe and correlate with the layers within a Docker image. [Knowledge and Comprehension]
  5. List the benefits of containerization, considering reproducibility, usage and installation. [Knowledge]
  6. Recognize the use cases where Docker is the preferred method for deploying applications. [Knowledge]
  7. Analyze the components of a Docker recipe and their impact on container performance and storage. [Comprehension]
  8. Summarize the process of writing a Docker recipe, building Docker images, and running containers. [Synthesis]
  9. Explain the importance of Docker caching and working with I/O volumes in containerized environments. [Comprehension]
  10. Compare advantages and disadvantages of Docker and Singularity for specific use cases, including distribution methods and safety. [Knowledge and Comprehension]
  11. Apply Docker commands and utilize Docker containers to deploy web applications and analysis tools [Apply]
  12. Develop Docker recipes and Singularity images tailored to the needs of different analysis pipelines. [Apply]
  13. 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: 360 minutes

Requirements: The (technical) installation requirements are described in the Chapters overview section Getting ready.

Supporting Materials:

  1. Exercises and solutions
  2. Slides day 1+2

Acknowledgement:

Funding: This project has received funding from VIB.

PURL:

Authors and Contributors

Authors

  • [Bruna Piereck](@orcid
  • [Alexander Botzki](@orcid
  • [Tuur Muyldermans](orcid

Contributors

  • we welcome contributors for these materials

Citing this lesson

Please cite as:

  1. to be added once we have released the first version

Chapters List

Chapter Title
0 Getting Ready.
1 Strategic use of generative AI for all
2 Strategic use of generative AI for research

References

Here are some great tips for learning and to get inspired for your own use:

About us

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