We may earn an affiliate commission when you visit our partners.
Course image
Candace Savonen, MS

Goal of this course:

Equip learners with basics skills and confidence to utilize containers within the context of scientific software analyses.

Expectations:

This course is not meant to teach learners how to create complex containers, but instead introduce learners to basic fundamentals of continuous integration and continuous deployment (CI/CD). This course focuses on containers (Docker or Podman) and will not cover any other (perfectly fine) tools for CI/CD.

Read more

Goal of this course:

Equip learners with basics skills and confidence to utilize containers within the context of scientific software analyses.

Expectations:

This course is not meant to teach learners how to create complex containers, but instead introduce learners to basic fundamentals of continuous integration and continuous deployment (CI/CD). This course focuses on containers (Docker or Podman) and will not cover any other (perfectly fine) tools for CI/CD.

Equipping researchers with the skills to create reproducible data analyses increases the efficiency of everyone involved. By recognizing that biological data analysis code is a form of software development, we can try to adapt good development practices in scientific analyses and software contexts.

Scientific software projects may include (but aren’t limited to):

- Software built as tools to be utilized by others to analyze biologically derived data

- Code that is built primarily for analyzing one project’s data

- Code that is built as a workflow for a series of steps and analyses that might be reused among collaborators or within a lab

- Any scripts and code that are built to handle data in a research setting

- Any scripts and code a researcher might interact with

Containers are one tool among many for creating reproducible analyses. A container is a lightweight, portable, and isolated environment that encapsulates an application and its dependencies, enabling it to run consistently across different computing environments. Many individuals performing analyses on cancer data may not have formal training in software development and may be unfamiliar with the idea of containers.

Unique Features of This Course

- Hands-on exercises exploring real uses of containers for scientific research and software

- Activities to demonstrate the common pitfalls using containers

- Information about how to use two of the most common tools for containers: Docker and Podman

Key Words

Reproducibility, Containers, Podman, Docker, Scientific Software Development, Biomedical Research

Intended Audience/Required Knowledge

- The course is intended for researchers and research staff who might be interested in learning about using containers to make their research or scientific software more reproducible.

- Some familiarity with biomedical or health-related research, as well as some familiarity with programming (including bash and command line) is required.

Learning Objectives

- Understand that computing environments are moving targets

- Use containers to share a controlled computing environment

- Pull and use a Docker image from online

- Modify a Docker image

- Build a Docker image from scratch

- Troubleshoot the most common Docker related errors

Accessibility

We are committed to making our content accessible and available to all. We welcome any feedback you might have at https://forms.gle/SzuZjct4ZQyt3Cos7. Questions related to accessibility accommodations should be directed to https://studentserviceportal.force.com/s/.

Enroll now

What's inside

Syllabus

Introduction
In this first module, we will cover how this course will work and the motivation for using containers for reproducible research
Getting started with Containers
Read more

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Career center

Learners who complete Wrangling Computing Environments: Using Docker for Research will develop knowledge and skills that may be useful to these careers:
Bioinformatics Scientist
A Bioinformatics Scientist applies computational methods to understand biological data, often developing and utilizing complex analysis pipelines. This course helps build a foundation for a Bioinformatics Scientist by directly addressing the critical need for reproducible research. With hands-on exercises using Docker and Podman, it equips learners with essential skills to manage computing environments, ensuring analyses are consistent and shareable. Understanding how to pull, modify, build, and troubleshoot containers will be particularly helpful in deploying scientific software and collaborating effectively within research teams. The course is especially relevant given its focus on adapting good development practices to scientific analyses, a key aspect of modern bioinformatics. This role typically requires an advanced degree.
Research Software Engineer
As a Research Software Engineer, you bridge the gap between scientific research and robust software development, creating tools and platforms that enable cutting-edge discoveries. This course is highly relevant for a Research Software Engineer because it focuses on adapting good development practices to scientific software contexts, emphasizing reproducibility. The practical experience gained in understanding and using containers like Docker and Podman provides a strong foundation for managing complex software dependencies and ensuring consistent execution environments. Learning to troubleshoot container-related errors, modify images, and implement CI/CD fundamentals directly supports the development of reliable and shareable scientific software. This role often requires an advanced degree or extensive experience.
Computational Biologist
A Computational Biologist develops and applies computational models and algorithms to solve biological problems, often requiring advanced programming and data analysis skills. This course helps a Computational Biologist by equipping you with the fundamental skills to utilize containers for creating reproducible data analyses, which is crucial for validating and sharing your models. The hands-on work with Docker and Podman, including learning to use, modify, and build images, provides a portable solution for encapsulating your computational environments. Understanding container best practices and troubleshooting common issues will enhance your ability to maintain consistency across different computing setups, a key aspect of scientific software development in this field. This role typically requires a Master's or PhD degree.
Bioinformatics Software Developer
A Bioinformatics Software Developer designs, builds, and maintains specialized software tools and pipelines for analyzing biological and genomic data, contributing significantly to scientific research. This course is exceptionally relevant for a Bioinformatics Software Developer because it emphasizes adapting good development practices to scientific software contexts, with a strong focus on containerization. The hands-on experience with Docker and Podman, including learning to build and modify images, use them as a development space, and troubleshoot issues, directly translates to creating robust, reproducible, and shareable bioinformatics tools. These skills are crucial for ensuring the reliability and consistency of complex analytical workflows. This role may require an advanced degree, or strong development experience.
Genomics Data Scientist
A Genomics Data Scientist specializes in analyzing large-scale genomic data, applying computational and statistical methods to uncover biological insights and contribute to precision medicine. For a Genomics Data Scientist, mastering reproducible data analyses is paramount due to the complexity and volume of genomic information. This course directly addresses this by providing hands-on experience with Docker and Podman, allowing you to create stable and shareable computing environments for your intricate pipelines. The ability to pull, modify, and build Docker images, alongside troubleshooting skills, will be particularly helpful in managing diverse bioinformatics tools and ensuring consistent results across research projects. This role usually requires a Master's or PhD.
Biomedical Data Analyst
A Biomedical Data Analyst extracts insights from complex health-related datasets, such as cancer data, playing a crucial role in scientific discovery and clinical translation. This course is particularly valuable for a Biomedical Data Analyst as it directly addresses the challenge of ensuring reproducible data analyses within research settings. By gaining hands-on experience with Docker and Podman, you will develop the capacity to create and share controlled computing environments, ensuring that your analytical pipelines yield consistent results regardless of the platform. The focus on troubleshooting containers and understanding common pitfalls will also be very helpful in maintaining robust and reliable data analysis workflows. This role often requires a Master's degree.
Scientific Programmer
A Scientific Programmer develops specialized software and scripts to support scientific research, translating complex algorithms into functional and efficient code. For a Scientific Programmer, this course helps build a foundation in adapting good development practices to scientific analyses and software contexts, particularly through the use of containers. The hands-on exercises with Docker and Podman, focusing on how to use, modify, and troubleshoot containers, directly empower you to create isolated and reproducible environments for your code. This ensures that your software runs consistently and is easily shareable among collaborators, increasing efficiency and reliability in research settings where scripts and code are built to handle data. This role may require an advanced degree depending on the specialization.
Data Scientist
A Data Scientist extracts insights from vast datasets, building models and performing analyses to inform decisions across various industries and research fields. This course helps a Data Scientist by addressing the fundamental challenge of ensuring reproducible data analyses, which is vital for maintaining the integrity and trustworthiness of your work. The practical skills gained in utilizing Docker and Podman to manage computing environments mean you can confidently share your analytical setups and models, knowing they will perform consistently elsewhere. Learning about CI/CD fundamentals and troubleshooting container errors will be particularly helpful in streamlining your workflow and deploying robust analytical solutions. This role often requires a Master's degree, and sometimes a PhD.
DevOps Engineer
A DevOps Engineer focuses on optimizing the software development lifecycle, emphasizing continuous integration, continuous delivery, and infrastructure as code. This course may be useful for a DevOps Engineer as it introduces learners to basic fundamentals of continuous integration and continuous deployment, with a strong focus on containers. The hands-on experience with Docker and Podman, including learning to use, modify, and troubleshoot these environments, provides a foundational understanding of key containerization technologies. While not a comprehensive DevOps curriculum, the course offers valuable skills in managing reproducible computing environments, which are essential for creating efficient and reliable deployment pipelines. This role typically does not require an advanced degree.
Systems Administrator Research Computing
A Systems Administrator Research Computing manages and maintains the computing infrastructure specifically tailored for scientific research, ensuring optimal performance and support for complex computational workflows. This course is highly relevant for a Systems Administrator Research Computing, as it provides crucial skills in utilizing containers to manage diverse scientific software. The hands-on experience with Docker and Podman, from pulling and modifying images to troubleshooting common errors, directly equips you to provide stable, isolated, and reproducible computing environments for researchers. This capability significantly streamlines software deployment and enhances collaborative efforts within a research setting. This role typically does not require an advanced degree, but deep technical knowledge is essential.
Cloud Engineer
As a Cloud Engineer, you design, implement, and manage cloud infrastructure and services, often leveraging virtualization and containerization for scalable applications. This course may be useful for a Cloud Engineer because it provides hands-on experience with Docker and Podman, which are foundational technologies in modern cloud environments. Learning to pull, modify, and build container images, as well as troubleshoot common errors, directly supports deploying and managing containerized applications on cloud platforms. While not covering the full scope of cloud infrastructure, the skills in creating reproducible and isolated computing environments are directly transferable to building robust and efficient cloud solutions. This role typically does not require an advanced degree.
Data Engineer
A Data Engineer designs, builds, and maintains robust data pipelines and infrastructure, ensuring data is accessible, reliable, and optimized for analysis and machine learning. This course may be useful for a Data Engineer seeking to enhance reproducibility within data processing workflows. The practical skills gained in creating and managing containerized environments using Docker and Podman are directly applicable to isolating dependencies and ensuring consistent execution of data transformations and analytical jobs. Learning about basic CI/CD fundamentals and troubleshooting containers will be helpful in building more reliable and portable data solutions, especially when dealing with complex scientific data. This role typically does not require an advanced degree.
Technical Support Specialist Scientific Software
A Technical Support Specialist Scientific Software provides crucial assistance to researchers, helping them resolve issues with specialized scientific applications and computing environments. This course may be useful for a Technical Support Specialist Scientific Software by equipping you with a foundational understanding of containers, which are often at the core of complex scientific software deployments. The hands-on training in troubleshooting the most common Docker-related errors, recognizing pitfalls, and understanding how to share and modify containerized environments directly enhances your ability to diagnose and resolve user issues related to software reproducibility and environment configuration. This role typically does not require an advanced degree, but domain-specific knowledge is important.
Machine Learning Engineer
A Machine Learning Engineer builds and deploys machine learning models, ensuring they are robust, scalable, and operate effectively in production environments. This course may be useful for a Machine Learning Engineer, particularly in research settings, by helping to address the critical need for reproducible experimental environments. The practical skills learned with Docker and Podman, including creating, modifying, and sharing controlled computing environments, are directly applicable to packaging and deploying machine learning models and their complex dependencies. Understanding troubleshooting for container issues will be helpful in maintaining consistent model performance and facilitating collaboration. This role often requires a Master's degree.
Quantitative Analyst
A Quantitative Analyst uses mathematical, statistical, and computational methods to develop models and analyze data, often in complex domains like finance or scientific research. This course may be useful for a Quantitative Analyst, particularly one involved in research, by providing essential skills for ensuring the reproducibility of computational models and analyses. The hands-on experience with Docker and Podman enables you to create isolated and consistent environments for your simulations and data processing, which is crucial for validation and collaboration. Understanding how to manage and troubleshoot containerized setups will be helpful in maintaining the integrity and reliability of your quantitative workflows. This role typically requires an advanced degree, such as a Master's or PhD.

Reading list

We've selected 48 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Wrangling Computing Environments: Using Docker for Research.
If you read a book about DevOps, read this one. It combines research and case studies to provide a compelling argument that DevOps is essential for the success of technology organizations.
Demystifies container execution mechanics from packaging through distribution, providing concrete recipes for bind mounts, network bridging, and runtime isolation barriers.
From the DevOps pioneers must-read for anyone who wants to understand the benefits of DevOps and how to implement it in their organization.
Delivers an exceptionally accessible yet technically deep walkthrough of container runtimes, diving into containerd, rootless execution, image architecture, and Swarm clusters.
This classic book popularized the concept of CI/CD and provides a comprehensive overview of the practice. It covers everything from building and testing to deployment and monitoring, and it includes case studies from real-world companies.
Gathers 100+ proven patterns and diagnostic workflows, tackling real-world problems around automated container builds, minimal base images, build caching, and volume persistence.
Guides engineers through a structured daily roadmap of practical container exercises, transitioning legacy monoliths into lightweight, containerized microservices step by step.
Presents high-availability architectural blueprints for distributed cloud systems, covering container clustering, horizontal autoscaling, load shedding, and resilience engineering.
Provides a comprehensive overview of distributed and cloud computing, covering topics such as parallel processing, cloud architectures, and the Internet of Things. It is written by experts in the field and provides a thorough understanding of the subject matter.
Provides a comprehensive overview of cloud computing, covering concepts, technologies, and architectures. It is written by experts in the field and provides a thorough understanding of the subject matter.
Investigates defense-in-depth container security, detailing host kernel hardening, secure image supply chains, automated SBOM auditing, and runtime workload protection mechanisms.
Provides a comprehensive overview of CI/CD and DevOps. It covers everything from the basics of CI/CD to the cultural and organizational changes that are necessary to adopt DevOps.
Provides a practical guide for researchers on how to use R and RStudio to make their research more reproducible. It covers topics such as data management, version control, and statistical analysis.
This practical guide focuses on the implementation and management of Kubernetes, the leading container orchestration platform. It offers hands-on guidance on configuring, deploying, and scaling containerized applications with Kubernetes.
Furnishes pragmatic configuration recipes for systems administrators, tackling multi-container Compose orchestration, private registry management, and host storage performance.
Explores enterprise container operations at scale, walking through security vulnerability scanning, multi-node clustering, secrets rotation, and automated infrastructure monitoring.
Addresses cluster-wide container orchestration and automated rollouts, detailing Swarm scheduling algorithms, service discovery, overlay networks, and declarative stack manifests.
Unpacks the transition from standalone Docker engines to Kubernetes orchestration, exploring pod abstractions, deployment manifests, service mesh concepts, and resource governance.
This practical guide focuses on using Java and popular tools like Jenkins, Docker, Maven, TestNG, and Selenium to implement CI/CD. It's a great choice for developers who want to get started with CI/CD in Java.
Written by a leading expert in cloud-native technologies, this book explores design patterns for building resilient and scalable container-based systems. Its insights into distributed systems make it valuable for understanding the challenges and best practices of containerization.
Examines cloud-native patterns for containerized applications, illustrating twelve-factor design principles, health check probes, stateless service tiers, and persistent state stores.
Provides a practical guide to designing and implementing continuous delivery pipelines. It covers a wide range of topics, from source control and build automation to testing and deployment.
Introduces containerized developer environments, explaining how to synchronize local code volumes, configure live reloaders, and establish consistent development stacks across teams.
Focuses on decomposing monolithic Java enterprise services into portable containers, illustrating service discovery, container communication, and load balancer configurations.
Provides a comprehensive overview of statistical learning methods, including topics such as linear regression, logistic regression, and decision trees. It valuable resource for researchers who want to learn more about how to analyze data.
Provides a comprehensive overview of deep learning methods, including topics such as convolutional neural networks, recurrent neural networks, and deep reinforcement learning. It valuable resource for researchers who want to learn more about how to use deep learning to solve problems.
Provides a comprehensive overview of reinforcement learning methods, including topics such as Markov decision processes, Q-learning, and policy gradients. It valuable resource for researchers who want to learn more about how to use reinforcement learning to solve problems.
Provides a comprehensive overview of Bayesian data analysis methods, including topics such as Bayesian inference, Markov chain Monte Carlo, and Bayesian model selection. It valuable resource for researchers who want to learn more about how to use Bayesian methods to analyze data.
Provides a practical guide for researchers on how to use Python for data analysis. It covers topics such as data manipulation, data visualization, and statistical analysis.
Provides a comprehensive overview of data science, including topics such as data management, data analysis, and machine learning. It valuable resource for researchers who want to learn more about how to use data science to solve problems.
This book, written by a Microsoft Principal Consultant, provides a step-by-step guide to setting up and using Visual Studio Team Services (VSTS) for CI/CD. It's a valuable resource for .NET developers who are looking to adopt CI/CD in their projects.
Provides a comprehensive overview of high performance computing, covering topics such as architectures, systems, and programming models. It is written by an expert in the field and provides a thorough understanding of the subject matter.
Practical guide to Dockerfiles. It explains how to build, test, and deploy containerized applications. The author, a Docker Captain, shares his expertise on Dockerfiles and containerization.
Walks through native container orchestration topologies, exploring consensus algorithms, service task distribution, ingress routing meshes, and fault-tolerant node failover.
Bridges network perimeter security and container ingress, demonstrating how reverse tunneling and outbound-only mTLS connections eliminate open inbound firewall attack surfaces.
Connects container orchestration with developer application stacks, guiding engineers through containerizing microservices, wiring Terraform provisioning, and staging clusters.
Provides a comprehensive overview of cloud computing, covering topics such as foundations, applications, and security. It is written by experts in the field and provides a thorough understanding of the subject matter.
This guide explores the integration of serverless computing with Kubernetes, enabling developers to build and deploy event-driven applications on a managed platform. It's a valuable resource for understanding the benefits and challenges of combining these technologies.
Provides a practical overview of cloud computing, covering topics such as deployment, management, and security. It is written by experts in the field and provides a hands-on approach to the subject matter.
This specialized book focuses on the Kubernetes Pod Security Standard (KPSS), a critical aspect of container security. It provides a comprehensive overview of KPSS, its components, and best practices for implementing it in Kubernetes clusters.
Provides a hands-on overview of cloud computing, covering topics such as deployment, management, and monitoring. It is written by experts in the field and provides a practical approach to the subject matter.
Quick and easy guide to Dockerfiles. It covers the basics of creating and using Dockerfiles, and it great resource for developers who want to get started with Docker quickly.
A technical reference guide with all the information you need on Podman commands and their usage.
Includes a section on Dockerfiles and their role in DevOps. It covers topics such as CI/CD pipelines, container registries, and automating Dockerfile builds.
Provides a comprehensive overview of Dockerfiles. It covers Dockerfile syntax, commands, best practices, and advanced topics such as multi-stage builds and custom layers.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Wrangling Computing Environments: Using Docker for Research.
Building Containerized Applications on AWS
Most relevant
Developing Containerized Applications on Google Cloud
Most relevant
Advanced Reproducibility in Cancer Informatics
Most relevant
Introduction to Reproducibility in Cancer Informatics
Most relevant
Containerized Applications on AWS
Most relevant
Intro to Cloud Native, Microservices, Containers, & Agile
Most relevant
Docker for absolute beginners
Most relevant
Two Major Models of running containers in AWS
Most relevant
Docker Fundamentals - Understanding Containers and Images
Most relevant

Coursera Buyer Protection & Guarantee

Verified partner policies & purchase protections

Accredited University Partner
Free Trial & Audit

7-Day Free Trial & Free Audit

7-day free trial on monthly Coursera Plus subscriptions; free audit option available on most individual courses to explore video lectures and readings at no charge.

Return & Refund Policy

14-Day Refund Guarantee

14-day refund window on annual Coursera Plus subscriptions and single-course purchases prior to certificate issuance. Monthly subscriptions do not offer refunds once billed.

Buyer Protections

Verified Academic & Industry Partner

Accredited university and industry certifications (e.g. Stanford, Google, IBM, Yale), secure SSL payment processing, and verifiable digital certificate links.

Key Purchase Protections
14-day refund window on annual Coursera Plus and single courses
7-day free trial on monthly Coursera Plus subscriptions
Free course audit option for lectures and readings
Verified certificates from top universities & companies
OpenCourser Verified Partner Policy details last reviewed: 2026-10-22
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser