Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Example of using containers in practice without volume/mount issues #131

Open
jayrobwilliams opened this issue Jul 14, 2021 · 2 comments
Open
Labels
type:enhancement Propose enhancement to the lesson

Comments

@jayrobwilliams
Copy link

This issue is for the episode on example containers in practice.

Teaching the intricacies of volumes and file access can distract from the core functionality of Docker, especially for audiences that just need to get Docker working for an existing software library the requires a running container to work. There are multiple R packages that require a running container, but don't require any messing with volumes:

  • RSelenium for web scraping
  • OSRM for pathing/routing using OpenStreetMap data

Both of these work seamlessly in R when containers are running in the background, not requiring the user to set volume arguments. Both packages use ports to connect to a web server running in the container, so the container doesn't need to see the host file system at all.

An example can be created using one of these packages so that the student doesn't have to set volume arguments. The RSelenium package has a vignette that could probably be adapted without too much additional effort.

In addition to simplifying the material that students need to learn, this might be close to the use case of many researchers who just need to run a container to get an existing library in a language they're familiar with to work.

@jcohen02
Copy link
Contributor

jcohen02 commented Jul 15, 2021

Thanks for suggesting this additional example for the "Examples of Using Container Images in Practice" section, @jayrobwilliams.

You make a good point that many researchers have less complex use cases than some of the examples provided so I think an example that follows the more straightforward model that you point out would be a useful addition.

Looking at the page at present, one thing that I think might be a useful addition is something that highlights what features are actually showcased in each example, e.g. for the first example we might put something like: "Docker features showcased: Running containers, port forwarding, bind mounting"

This could help learners (or anyone who discovers the page looking for Docker examples) to see which example is most suitable for them if they want help with understanding how to use a specific feature. I should probably open a separate issue for that...

Are you happy to write something up based on your suggestion and open a Pull Request? Otherwise the maintainers could work on this but that possibly won't be until the next development sprint.

@sstevens2 sstevens2 added the type:enhancement Propose enhancement to the lesson label Oct 5, 2021
@sstevens2
Copy link
Contributor

Like the idea of including some tags for each of the examples on what they teach. The Jekyll example also uses port forwarding as is suggested in the original post here. I did get a question about how one might visualize a shiny app deployed in a container and suggested port forwarding when I taught this last week. Might also make for a fun example. Might be 2 separate PRs from this issue: 1) with the example that @jayrobwilliams suggested and 2) with the addition of labels for each of the examples.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:enhancement Propose enhancement to the lesson
Projects
None yet
Development

No branches or pull requests

3 participants