Can teach as written but may need want to adapt for different audiences, including examples that might be motivating for folks in the audience
Also might focus on running containers instead of creating depending on audience
Another difference if you split into multiple days you might get the chance to talk to learners on the first day and give targeted examples on the 2nd day - "bring your own worst install" exercise for example
Day 1 is intro
Day to is bring something you want to put in a container and learn that episode and then work for an hour on an example
Collection of extras - growing to many examples for how to use docker
Docker can do many many different things - which is a challenge to decide what should be core to the lesson and what is an extra
Learner profiles are part of what we use to decide what is core and think about the audience - changes /addition to those welcome
Questions about the Docker lesson? (both how to teach / content)
Tim: Interested in how the learners handle installation on their systems? Barriers? Given docker's install issues in some times.
Dave: Docker installation has gotten better. It was difficult early on. Sometimes wasn't possible to install in the early on lesson. Docker desktop interface has been maturing and makes things easier to use across operating systems. Getting easier but need to think about the age of the learner's computers. Older machines/OS not supported as well
Sarah: Mandatory check for windows users, not using docker --version as a check but rather a docker run command. Sometimes permissions issues are not detected until the first docker run
Mateusz: Issues with admin privelges in installations, has gotten better. Can run docker without admin permissions. Still requires some sudo permissions for installation but can run things not as root. Providing other environments - AWS for example so people can use it. Lots of Carpentries workshops use software (anaconda for example) that doesn't require admin privs
Cameron: Insallation and use of the software, this can all be done using the free version correct? Don't need to subscribe to the pro plan?
Christina: Yes. They don't need to pay to use.
Val: Familiar with Python virtual env. Not sure how to get data to the software in docker env?
Sarah: Mount volume might be a good option. It is in the episode about more complex docker containers.
Christina: we've talked about moving this forward as it is a common need for learners.
David: On the topic of Core / extra size. This might be somethign where we add links to other resources on best practices. For example with files you can put them into the image, or mount a volume, or maybe in an cloud storage and link that to your docker
Example using containers page could use an R docker image that mount a mount a webserver, seleinum or open street map.
Tim: Important to talk about volumes, conceptually the idea of connecting inside of container to outside of container and path remapping. Singluarity does this a bit more transparently - default exposes your home folder. If you have that methodology you can have multiple containers on the same path which gets at Robs question below a bit.
David: Singlarity is similar to docker but better for HPC as it doesn't use root permissions and will use docker images.
Tim: Using singularity don't request too much from dockerhub as you till get throttled
Mateusz: Volumes are mentioned briefly in lesson but think that there should be more emphasis on the options (COPY vs -v, etc).
Suggestion: People are are confused about the dot at the end with build and try to leave it off. Maybe would be good to explain this more in the lesson.
Suggestion: Docker container ls and docker image ls but then other times uses the the older syntax for example in the volume mount. All things still work but it would be good to be consistent. Maybe mentioning that people will see the old syntax in places but steering people toward the new syntax.
Mateusz volunteers to help with lesson
Rob: Docker best practices question: When to split into two containers vs putting things in one container?
Sorry I missed Mateusz answere here
David: If youa re going to run services with containers, you are heading into kubernetes space. Not our primary audience at the moment but would be nice to provide a trajectory for people interested in this. Coordianting a set of containers - docker compose, docker swarm. would appreciate people's experience and this is a moving target as software has changed in a short time.
Christina: depends on how you want to use your containers. ONe thing that everyone in your lab can use, amybe put it in all one container. Maybe it makes more sense to split the installation.
Mateusz: Size limit to consider as well.
Ian: As soon as you get beyond 1-2 containers, it is time to use docker compose and solidify your workflow in containers. When I got to using two containers I needed to write out in docker compose file to think about how they are related.
Albert: Suggestion for image about how virtualization works in lesson. Difference between VM and container. Difference between SWC using Git Bash vs Powershell
Christina: On the powershell, think we recommend Linux subsystem for windows? but might be other references in the lesson still
Christina: I use slides when teaching the first episode (which is an introduction to containers / virtualization), but we haven't incorporated those images into the lesson (yet)
Christina: If you have suggestions or want to contribute images, please do!
Carlos: New to DOcker but I thought I should ask, I"m using HPCf which has a time limit of 7 days before jobs are terminated. Is there an effect on computing time when using tools inside Docker verses tools installed "locally"?
Mateusz: Do this on our team quite a lot. Time contrained environment. Don't see detecable performance hit for our software using Docker. Different versions of CUDA but not docker.
Sarah G: another potentially useful resource. A talk from Tania Allard on Python and Docker for Data Science/ML https://www.youtube.com/watch?v=Jq68axbKIbg I think she touches on multi-stage builds for security
My broader question is, is there demand for this lesson?
Christina: there's a need for it, and you have to go find the need to get the demand. ;)
I would really like to hear people's opinions on how to best teach the difference between containers and VMs for complete beginners. They need to know the difference, but the subject is not easy for someone new to the field.
I don't know what you would think of this Mateusz and David, but if you think of containers like shipping crates and VMs like warehouses. You can fit containers in VMs and containers can contain all sorts of things... Not sure if that analogy fits perfectly
What are you trying to protect learners against? What surprises will happen if you expect a container to behave like a VM?
Christina's perennial questions about Docker
what do you think is most confusing / hard to grasp about learning Docker?
what's the #1 thing you think people should know about Docker?
what is Docker's biggest selling point? what do you want to communicate
Questions about Instructor Training Checkout?
How substantial does the contribution need to be?
Ignore "substantial", all issues/prs will count for contributions.
Teaching demo - make sure that the instructions were followed?
Introductions:
Docker lesson:
Current incubator lesson as rendered: https://carpentries-incubator.github.io/docker-introduction/ Repository: https://github.com/carpentries-incubator/docker-introduction
Notes about the docker lesson:
Questions about the Docker lesson? (both how to teach / content)
docker --version
as a check but rather adocker run
command. Sometimes permissions issues are not detected until the firstdocker run
Other Questions
Christina's perennial questions about Docker
Questions about Instructor Training Checkout?