Creating Your Own Container Images

-

Last updated on 2024-07-31 | +

Last updated on 2024-08-16 | Edit this page

@@ -462,7 +462,7 @@

Exercise: Searching for Help

  1. Python container image. Same -with R. We’ve used -Alpine Linux as an example in this lesson, but it’s generally not a good -container image to start with for initial development and -experimentation because it is a less common distribution of Linux; using -Ubuntu, Debian and CentOS are all good options +with the R programming +language. We’ve used Alpine Linux as an example in this lesson, but +it’s generally not a good container image to start with for initial +development and experimentation because it is a less common distribution +of Linux; using Ubuntu, Debian and CentOS are all good options for scientific software installations. The program you’re using might recommend a particular distribution of Linux, and if so, it may be useful to start with a container image for that distribution.
  2. @@ -879,8 +879,8 @@

    Key PointsDiscussion

    "creativeWorkStatus": "active", "url": "https://preview.carpentries.org/docker-introduction/discuss.html", "identifier": "https://preview.carpentries.org/docker-introduction/discuss.html", - "dateCreated": "2024-08-01", + "dateCreated": "2024-08-16", "dateModified": "2024-07-31", "datePublished": "2024-08-16" } diff --git a/docker-hub.html b/docker-hub.html index a1c44e01..a1ca11d9 100644 --- a/docker-hub.html +++ b/docker-hub.html @@ -661,7 +661,7 @@

    Key Points
    @@ -394,18 +393,7 @@

    Objectives

    workflow.

    You may choose one or more of the following examples to practice using containers.

    -

    Jekyll Website Example -

    -

    In this Jekyll Website -example, you can practice rendering this lesson website on your -computer using the Jekyll static website generator in a Docker -container. Rendering the website in a container avoids a complicated -software installation; instead of installing Jekyll and all the other -tools needed to create the final website, all the work can be done in -the container. Additionally, when you no longer need to render the -website, you can easily and cleanly remove the software from your -computer.

    -

    GitHub Actions Example +

    GitHub Actions Example


    In this GitHub Actions example, you can learn more about continuous integration in the cloud and how you @@ -445,7 +433,8 @@

    Objectives

    Seeking Examples


    Do you have another example of using Docker in a workflow related to -your field? Please [open a lesson issue] or submit +your field? Please open +a lesson issue or submit a pull request to add it to this episode and the extras section of the lesson.

+
+
+ +
+
+

Target audience +

+
+

This lesson on the use of Docker is intended to be relevant to a wide +range of researchers, as well as existing and prospective technical +professionals. It is intended as a beginner level course that is +suitable for people who have no experience of containers.

+

We are aiming to help people who want to develop their knowledge of +container tooling to help improve reproducibility and support their +research work, or that of individuals or teams they are working +with.

+

We provide more detail on specific roles that might benefit from this +course on the Learner Profiles page.

+
+
+
@@ -409,8 +430,9 @@

A note about Dockeropening +an issue in the GitHub +repository for this lesson.

@@ -691,7 +713,7 @@

Instructor Notes


-

[Docker][Docker] and its associated ecosystem is rapidly developing. -While many core features will be stable, the overall environment changes -regularly with version updates and new tools for interacting with Docker -and running containers on different platforms.

+

Docker and its associated +ecosystem is rapidly developing. While many core features will be +stable, the overall environment changes regularly with version updates +and new tools for interacting with Docker and running containers on +different platforms.

In particular, there can be differences between macOS, Windows and Linux platforms. Updates and changes introduced in Docker releases are -highlighted in the [Docker release notes][Docker release notes].

+highlighted in the Docker release +notes.

You are strongly advised to run through the lesson content prior to teaching the lesson to ensure that everything works as expected.

-

If you experience any issues, please [open an issue][open a lesson -issue] in the lesson repository describing the problem and platform(s) -affected. The lesson maintainers will aim to resolve the issue as soon -as possible but we also welcome the opening of pull requests (linked to -issues) that resolve anything that doesn’t work as expected with the -lesson content.

+

If you experience any issues, please open +an issue in the lesson repository describing the problem and +platform(s) affected. The lesson maintainers will aim to resolve the +issue as soon as possible but we also welcome the opening of pull +requests (linked to issues) that resolve anything that doesn’t work as +expected with the lesson content.

Miscellaneous Tips

@@ -724,7 +726,7 @@

Learner Pathways

@@ -320,7 +319,7 @@

  • Extract All Images
  • -
  • Creating Containers on the Cloud
  • Container Orchestration
  • About
  • Using Docker with Github Actions
  • Using Docker with Jekyll - Containers Used in Generating this Lesson

  • Discussion
  • Glossary
  • +
  • Creating Containers on the Cloud
  • Container Orchestration
  • About
  • Using Docker with Github Actions

  • Discussion
  • Glossary
  • @@ -396,18 +395,7 @@

    Objectives

    workflow.

    You may choose one or more of the following examples to practice using containers.

    -

    Jekyll Website Example -

    -

    In this Jekyll Website -example, you can practice rendering this lesson website on your -computer using the Jekyll static website generator in a Docker -container. Rendering the website in a container avoids a complicated -software installation; instead of installing Jekyll and all the other -tools needed to create the final website, all the work can be done in -the container. Additionally, when you no longer need to render the -website, you can easily and cleanly remove the software from your -computer.

    -

    GitHub Actions Example +

    GitHub Actions Example


    In this GitHub Actions example, you can learn more about continuous integration in the cloud and how you @@ -447,7 +435,8 @@

    Objectives

    Seeking Examples


    Do you have another example of using Docker in a workflow related to -your field? Please [open a lesson issue] or submit +your field? Please open +a lesson issue or submit a pull request to add it to this episode and the extras section of the lesson.

    @@ -372,7 +474,7 @@

    Learner Profiles

    "creativeWorkStatus": "active", "url": "https://preview.carpentries.org/docker-introduction/instructor/profiles.html", "identifier": "https://preview.carpentries.org/docker-introduction/instructor/profiles.html", - "dateCreated": "2024-08-01", + "dateCreated": "2024-08-16", "dateModified": "2024-08-16", "datePublished": "2024-08-16" } diff --git a/instructor/reference.html b/instructor/reference.html index f6b0de37..99ffbdfb 100644 --- a/instructor/reference.html +++ b/instructor/reference.html @@ -99,7 +99,7 @@ -

    @@ -372,7 +474,7 @@

    Learner Profiles

    "creativeWorkStatus": "active", "url": "https://preview.carpentries.org/docker-introduction/profiles.html", "identifier": "https://preview.carpentries.org/docker-introduction/profiles.html", - "dateCreated": "2024-08-01", + "dateCreated": "2024-08-16", "dateModified": "2024-08-16", "datePublished": "2024-08-16" } diff --git a/reference.html b/reference.html index 0ec3484b..7e8660ba 100644 --- a/reference.html +++ b/reference.html @@ -607,7 +607,7 @@

    Glossary

    "creativeWorkStatus": "active", "url": "https://preview.carpentries.org/docker-introduction/reference.html", "identifier": "https://preview.carpentries.org/docker-introduction/reference.html", - "dateCreated": "2024-08-01", + "dateCreated": "2024-08-16", "dateModified": "2024-08-16", "datePublished": "2024-08-16" } diff --git a/reproduciblity.html b/reproduciblity.html index 5fcb9c5d..39dfaed7 100644 --- a/reproduciblity.html +++ b/reproduciblity.html @@ -421,24 +421,33 @@

    Work in progress…

    By reproducibility here we mean the ability of someone else (or your future self) being able to reproduce what you did computationally at a particular time (be this in research, analysis or -something else) as closely as possible even if they do not have access +something else) as closely as possible, even if they do not have access to exactly the same hardware resources that you had when you did the original work.

    +

    What makes this especially important? With research being +increasingly digital in nature, more and more of our research outputs +are a result of the use of software and data processing or analysis. +With complex software stacks or groups of dependencies often being +required to run research software, we need approaches to ensure that we +can make it as easy as possible to recreate an environment in which a +given research process was undertaken. There many reasons why this +matters, one example being someone wanting to reproduce the results of a +publication in order to verify them and then build on that research.

    Some examples of why containers are an attractive technology to help with reproducibility include:

    -

    Container Granularity


    As mentioned above, one of the decisions you may need to make when @@ -686,7 +713,7 @@

    Key PointsKey Points