An introduction to Docker for reproducible research, with examples from the R environment

An introduction to Docker for reproducible research, with examples from the R environment

2 Oct 2014 | Carl Boettiger
This paper explores the challenges of computational reproducibility in scientific research, particularly in the context of the R statistical environment. It highlights common issues such as "Dependency Hell," imprecise documentation, code rot, and barriers to adoption and reuse of existing solutions. The author reviews current approaches like virtual machines and workflow systems, noting their limitations. The paper then introduces Docker, a popular open-source tool that combines operating system virtualization, cross-platform portability, modular reusability, versioning, and a "DevOps" philosophy to address these challenges. Docker images and Dockerfiles are discussed in detail, along with their benefits for reproducible research. The paper also covers Docker's role in creating portable computation environments, sharing images, and facilitating modular reuse. Finally, the author discusses best practices for using Docker containers in development and concludes by addressing limitations and future developments, emphasizing the potential of Docker to enhance reproducibility in scientific communities.This paper explores the challenges of computational reproducibility in scientific research, particularly in the context of the R statistical environment. It highlights common issues such as "Dependency Hell," imprecise documentation, code rot, and barriers to adoption and reuse of existing solutions. The author reviews current approaches like virtual machines and workflow systems, noting their limitations. The paper then introduces Docker, a popular open-source tool that combines operating system virtualization, cross-platform portability, modular reusability, versioning, and a "DevOps" philosophy to address these challenges. Docker images and Dockerfiles are discussed in detail, along with their benefits for reproducible research. The paper also covers Docker's role in creating portable computation environments, sharing images, and facilitating modular reuse. Finally, the author discusses best practices for using Docker containers in development and concludes by addressing limitations and future developments, emphasizing the potential of Docker to enhance reproducibility in scientific communities.
Reach us at info@study.space