Skip to content

Commit

Permalink
markdown source builds
Browse files Browse the repository at this point in the history
Auto-generated via {sandpaper}
Source  : e15cddb
Branch  : main
Author  : Andy Turner <[email protected]>
Time    : 2024-08-01 08:04:12 +0000
Message : Merge pull request carpentries-incubator#239 from jcohen02/fix/issue234

Updated questions at the start of "advanced containers"
  • Loading branch information
actions-user committed Aug 1, 2024
1 parent 79b92d3 commit 4e7fd13
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 19 deletions.
6 changes: 5 additions & 1 deletion advanced-containers.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,11 @@ exercises: 30

:::::::::::::::::::::::::::::::::::::::: questions

- How can I make more complex container images?
- How can I add local files (e.g. data files) into container
images at build time?

- How can I access files stored on the host system from within a running Docker
container?

::::::::::::::::::::::::::::::::::::::::::::::::::

Expand Down
4 changes: 2 additions & 2 deletions docker-image-examples.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Examples of Using Container Images in Practice
teaching: 20
exercises: 0
teaching: 10
exercises: 15
---

::::::::::::::::::::::::::::::::::::::: objectives
Expand Down
Binary file added fig/containers-cookie-cutter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 10 additions & 8 deletions introduction.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Introducing Containers
teaching: 20
exercises: 0
exercises: 5
---

::::::::::::::::::::::::::::::::::::::: objectives
Expand Down Expand Up @@ -64,7 +64,7 @@ to use likely depends on many, many, different other programs (including the
operating system!), creating a very complex, and often fragile system. One change
or missing piece may stop the whole thing from working or break something that was
already running. It's no surprise that this situation is sometimes
informally termed "dependency hell".
informally termed **dependency hell**.

::::::::::::::::::::::::::::::::::::::: challenge

Expand Down Expand Up @@ -92,7 +92,7 @@ and access to resources such as files and communications networks in a uniform m

## What is a Container? What is Docker?

[Docker][Docker] is a tool that allows you to build what are called "containers." It's
[Docker][Docker] is a tool that allows you to build what are called **containers**. It's
not the only tool that can create containers, but is the one we've chosen for
this workshop. But what *is* a container?

Expand All @@ -103,7 +103,7 @@ called the hardware. One of these pieces is the CPU or processor; another is
the amount of memory or RAM that your computer can use to store information
temporarily while running programs; another is the hard drive, which can store
information over the long-term. All these pieces work together to do the
"computing" of a computer, but we don't see them because they're hidden from view (usually).
computing of a computer, but we don't see them because they're hidden from view (usually).

Instead, what we see is our desktop, program windows, different folders, and
files. These all live in what's called the filesystem. Everything on your computer -- programs,
Expand All @@ -115,23 +115,23 @@ of making a mess of your existing system by installing a bunch of additional stu
You don't want to buy a whole new computer because it's too expensive.
What if, instead, you could have another independent filesystem and running operating system that you could access from your main computer, and that is actually stored within this existing computer?

Or, imagine you have two tools you want to use in your groundbreaking research on cat memes: `PurrLOLing`, a tool that does AMAZINGLY well at predicting the best text for a meme based on the cat species and `WhiskerSpot`, the only tool available for identifying cat species from images. You want to send cat pictures to `WhiskerSpot`, and then send the species output to `PurrLOLing`. But there's a problem: `PurrLOLing` only works on Ubuntu and `WhiskerSpot` is only supported for OpenSUSE so you can't have them on the same system! Again, we really want another filesystem (or two) on our computer that we could use to chain together `WhiskerSpot` and `PurrLOLing` in a "pipeline"...
Or, imagine you have two tools you want to use in your groundbreaking research on cat memes: `PurrLOLing`, a tool that does AMAZINGLY well at predicting the best text for a meme based on the cat species and `WhiskerSpot`, the only tool available for identifying cat species from images. You want to send cat pictures to `WhiskerSpot`, and then send the species output to `PurrLOLing`. But there's a problem: `PurrLOLing` only works on Ubuntu and `WhiskerSpot` is only supported for OpenSUSE so you can't have them on the same system! Again, we really want another filesystem (or two) on our computer that we could use to chain together `WhiskerSpot` and `PurrLOLing` in a **computational pipeline**...

Container systems, like Docker, are special programs on your computer that make it possible!
The term "container" can be usefully considered with reference to shipping
The term container can be usefully considered with reference to shipping
containers. Before shipping containers were developed, packing and unpacking
cargo ships was time consuming and error prone, with high potential for
different clients' goods to become mixed up. Just like shipping containers keep things
together that should stay together, software containers standardize the description and
creation of a complete software system: you can drop a container into any computer with
the container software installed (the 'container host'), and it should "just work".
the container software installed (the 'container host'), and it should *just work*.

::::::::::::::::::::::::::::::::::::::::: callout

## Virtualization

Containers are an example of what's called **virtualization** -- having a
second "virtual" computer running and accessible from a main or **host**
second virtual computer running and accessible from a main or **host**
computer. Another example of virtualization are **virtual machines** or
VMs. A virtual machine typically contains a whole copy of an operating system in
addition to its own filesystem and has to get booted up in the same way
Expand All @@ -153,6 +153,8 @@ can be used to create multiple copies of the same shape (or container)
and is relatively unchanging, where cookies come and go. If you want a
different type of container (cookie) you need a different container image (cookie cutter).

![](fig/containers-cookie-cutter.png){alt='An image comparing using a cookie cutter to the container workflow'}

## Putting the Pieces Together

Think back to some of the challenges we described at the beginning. The many layers
Expand Down
12 changes: 6 additions & 6 deletions md5sum.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,22 @@
"aio.md" "bbb0f59db3ef6dccf60fb4a7a86d3020" "site/built/aio.md" "2024-07-31"
"config.yaml" "54be1fabc599404a592c83552a49916f" "site/built/config.yaml" "2024-07-31"
"index.md" "a0429c3e89b940ea353978606add384b" "site/built/index.md" "2024-07-31"
"episodes/introduction.md" "65acbc9eee4951ed8a2bf60b8e5614c5" "site/built/introduction.md" "2024-07-31"
"episodes/meet-docker.md" "785f6d0573883fc559577e1b4a1ad910" "site/built/meet-docker.md" "2024-07-31"
"episodes/introduction.md" "fbd6c719d897bfa342d976928b942d56" "site/built/introduction.md" "2024-08-01"
"episodes/meet-docker.md" "36a6daa2e4727a8ce88db8a4a1a0fa88" "site/built/meet-docker.md" "2024-08-01"
"episodes/running-containers.md" "4bd40434e9fee516256b848e2a423f5a" "site/built/running-containers.md" "2024-07-31"
"episodes/managing-containers.md" "cd974b695f6fa04b3042765a827df552" "site/built/managing-containers.md" "2024-07-31"
"episodes/docker-hub.md" "430220bbc73531857a09eddfc6247b4c" "site/built/docker-hub.md" "2024-07-31"
"episodes/creating-container-images.md" "0731ed5b7e57d0608ed77bc4bdc825a0" "site/built/creating-container-images.md" "2024-07-31"
"episodes/advanced-containers.md" "41a647e7e273a1eac95ee665683dd6cf" "site/built/advanced-containers.md" "2024-07-31"
"episodes/docker-image-examples.md" "91c853fa861b1f01c05088081d4679ba" "site/built/docker-image-examples.md" "2024-07-31"
"episodes/reproduciblity.md" "2e50d4da932a7934c1ed2a4180c118ef" "site/built/reproduciblity.md" "2024-07-31"
"episodes/advanced-containers.md" "b74165d491ae2922492f766f9002b47a" "site/built/advanced-containers.md" "2024-08-01"
"episodes/docker-image-examples.md" "aad130919b6a4721f2c96730694e7799" "site/built/docker-image-examples.md" "2024-08-01"
"episodes/reproduciblity.md" "8f2340e2e1e564d657d8c34743aa95d0" "site/built/reproduciblity.md" "2024-08-01"
"instructors/06-containers-on-the-cloud.md" "6838e441f1869570ec5313bc72e85eb4" "site/built/06-containers-on-the-cloud.md" "2024-07-31"
"instructors/08-orchestration.md" "6f69af23a2cd48c8382e2573ec2907ad" "site/built/08-orchestration.md" "2024-07-31"
"instructors/about.md" "1df29c85850c4e3a718d5fc3a361e846" "site/built/about.md" "2024-07-31"
"instructors/e01-github-actions.md" "ae95c2390c400410b5708a9e5f4c29c1" "site/built/e01-github-actions.md" "2024-07-31"
"instructors/e02-jekyll-lesson-example.md" "48bdfb3a1c6ce3fcb275d3027d0ceb38" "site/built/e02-jekyll-lesson-example.md" "2024-07-31"
"instructors/instructor-notes.md" "6ccb557863cff40a02727a9b8729add7" "site/built/instructor-notes.md" "2024-07-31"
"learners/discuss.md" "2758e2e5abd231d82d25c6453d8abbc6" "site/built/discuss.md" "2024-07-31"
"learners/reference.md" "2fed58c99f3f041d5971d3dfaa8454da" "site/built/reference.md" "2024-07-31"
"learners/reference.md" "bbb68ff9187bcebed81d18156df503cc" "site/built/reference.md" "2024-08-01"
"learners/setup.md" "fd74bc2dd9538bf486391304cb6f6f7f" "site/built/setup.md" "2024-07-31"
"profiles/learner-profiles.md" "60b93493cf1da06dfd63255d73854461" "site/built/learner-profiles.md" "2024-07-31"
2 changes: 1 addition & 1 deletion meet-docker.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Introducing the Docker Command Line
teaching: 10
exercises: 0
exercises: 5
---

::::::::::::::::::::::::::::::::::::::: objectives
Expand Down
2 changes: 2 additions & 0 deletions reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ title: 'Glossary'
<dd><a href="https://glosario.carpentries.org/en/#command_line_argument" alt="Link to Carpentries Glossario">See the Carpentries Glossario entry</a></dd>
<dt>Command-line interface (CLI)</dt>
<dd><a href="https://glosario.carpentries.org/en/#cli" alt="Link to Carpentries Glossario">See the Carpentries Glossario entry</a></dd>
<dt>Computational pipeline</dt>
<dd>A combination of different software tools in a particular order that is used to perform a defined set of repeatable operations on different input data.</dd>
<dt>Container</dt>
<dd>A particular instance of a lightweight virtual machine derived from a <em>container image</em>. Containers are typically transient, unlike <em>container images</em> which persist.</dd>
<dt>Container image</dt>
Expand Down
2 changes: 1 addition & 1 deletion reproduciblity.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Containers in Research Workflows: Reproducibility and Granularity'
teaching: 20
exercises: 0
exercises: 5
---

::::::::::::::::::::::::::::::::::::::: objectives
Expand Down

0 comments on commit 4e7fd13

Please sign in to comment.