{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,30]],"date-time":"2026-07-30T14:27:59Z","timestamp":1785421679254,"version":"3.56.0"},"reference-count":28,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2015,1,20]],"date-time":"2015-01-20T00:00:00Z","timestamp":1421712000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGOPS Oper. Syst. Rev."],"published-print":{"date-parts":[[2015,1,20]]},"abstract":"<jats:p>As computational work becomes more and more integral to many aspects of scientific research, computational reproducibility has become an issue of increasing importance to computer systems researchers and domain scientists alike. Though computational reproducibility seems more straight forward than replicating physical experiments, the complex and rapidly changing nature of computer environments makes being able to reproduce and extend such work a serious challenge. In this paper, I explore common reasons that code developed for one research project cannot be successfully executed or extended by subsequent researchers. I review current approaches to these issues, including virtual machines and workflow systems, and their limitations. I then examine how the popular emerging technology Docker combines several areas from systems research - such as operating system virtualization, cross-platform portability, modular re-usable elements, versioning, and a 'DevOps' philosophy, to address these challenges. I illustrate this with several examples of Docker use with a focus on the R statistical environment.<\/jats:p>","DOI":"10.1145\/2723872.2723882","type":"journal-article","created":{"date-parts":[[2015,1,28]],"date-time":"2015-01-28T14:05:51Z","timestamp":1422453951000},"page":"71-79","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":824,"title":["An introduction to Docker for reproducible research"],"prefix":"10.1145","volume":"49","author":[{"given":"Carl","family":"Boettiger","sequence":"first","affiliation":[{"name":"Center for Stock Assessment Research, Santa Cruz, CA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2015,1,20]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/998688.1007097"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1038\/467753a"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the 13th Python in Science Conference (SciPy 2014","author":"Clark D.","year":"2014"},{"key":"e_1_2_1_4_1","unstructured":"Collberg C. et al. 2014. Measuring Reproducibility in Computer Systems Research.  Collberg C. et al. 2014. Measuring Reproducibility in Computer Systems Research."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1038\/nbt1110-1181"},{"key":"e_1_2_1_6_1","volume-title":"Toward Replayable Research in Networking and Systems. Archive '10, the nSF workshop on archiving experiments to raise scientific standards","author":"Eide E.","year":"2010"},{"key":"e_1_2_1_7_1","unstructured":"FitzJohn R. et al. 2014. Reproducible research is still a challenge. http:\/\/ropensci.org\/blog\/2014\/06\/09\/reproducibility\/.  FitzJohn R. et al. 2014. Reproducible research is still a challenge. http:\/\/ropensci.org\/blog\/2014\/06\/09\/reproducibility\/."},{"key":"e_1_2_1_8_1","doi-asserted-by":"crossref","unstructured":"Garijo D. et al. 2013. Quantifying reproducibility in computational biology: The case of the tuberculosis drugome. {PLoS} {ONE}. 8 11 (Nov. 2013) e80278.  Garijo D. et al. 2013. Quantifying reproducibility in computational biology: The case of the tuberculosis drugome. {PLoS} {ONE}. 8 11 (Nov. 2013) e80278.","DOI":"10.1371\/journal.pone.0080278"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2007.421"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1111\/j.1365-294X.2012.05754.x"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2506164.2506175"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2012.62"},{"key":"e_1_2_1_13_1","doi-asserted-by":"crossref","unstructured":"Hull D. et al. 2006. Taverna: a tool for building and running workflows of services. Nucleic Acids Research. 34 Web Server (Jul. 2006) W729--W732.  Hull D. et al. 2006. Taverna: a tool for building and running workflows of services. Nucleic Acids Research. 34 Web Server (Jul. 2006) W729--W732.","DOI":"10.1093\/nar\/gkl320"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1038\/nature10836"},{"key":"e_1_2_1_15_1","doi-asserted-by":"crossref","unstructured":"Joppa L.N. et al. 2013. Troubling Trends in Scientific Software Use. Science (New York N.Y.). 340 6134 (May 2013) 814--815.  Joppa L.N. et al. 2013. Troubling Trends in Scientific Software Use. Science (New York N.Y.). 340 6134 (May 2013) 814--815.","DOI":"10.1126\/science.1231535"},{"key":"e_1_2_1_16_1","unstructured":"Lapp Hilmar 2014. Reproducibility \/ repeatability big- Think (with tweets) @hlapp. Storify. http:\/\/storify.com\/hlapp\/reproducibility-repeatability-bigthink.  Lapp Hilmar 2014. Reproducibility \/ repeatability big- Think (with tweets) @hlapp. Storify. http:\/\/storify.com\/hlapp\/reproducibility-repeatability-bigthink."},{"key":"e_1_2_1_17_1","volume-title":"Sweave: Dynamic Generation of Statistical Reports Using Literate Data Analysis","author":"Leisch F.","year":"2002"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1038\/467775a"},{"key":"e_1_2_1_19_1","first-page":"7391","article-title":"Must try harder","volume":"483","author":"Nature Editors","year":"2012","journal-title":"Nature."},{"key":"e_1_2_1_20_1","unstructured":"Ooms J. 2013. Possible directions for improving dependency versioning in r. arXiv.org. http:\/\/arxiv.org\/abs\/1303. 2140v2.  Ooms J. 2013. Possible directions for improving dependency versioning in r. arXiv.org. http:\/\/arxiv.org\/abs\/1303. 2140v2."},{"key":"e_1_2_1_21_1","unstructured":"Ooms J. 2014. The openCPU system: Towards a universal interface for scientific computing through separation of concerns. arXiv.org. http:\/\/arxiv.org\/abs\/1406.4806.  Ooms J. 2014. The openCPU system: Towards a universal interface for scientific computing through separation of concerns. arXiv.org. http:\/\/arxiv.org\/abs\/1406.4806."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1126\/science.1213847"},{"key":"e_1_2_1_23_1","doi-asserted-by":"crossref","unstructured":"Stodden V. 2010. The scientific method in practice: Reproducibility in the computational sciences. SSRN Journal. (2010).  Stodden V. 2010. The scientific method in practice: Reproducibility in the computational sciences. SSRN Journal. (2010).","DOI":"10.2139\/ssrn.1550193"},{"key":"e_1_2_1_24_1","unstructured":"Stodden V. et al. 2013. Setting the Default to Reproducible. (2013) 1--19.  Stodden V. et al. 2013. Setting the Default to Reproducible. (2013) 1--19."},{"key":"e_1_2_1_25_1","unstructured":"The Economist 2013. How science goes wrong. The Economist. http:\/\/www.economist.com\/news\/leaders\/21588069-scientific-research-has-changed-world-now-itneeds-change-itself-how-science-goes-wrong.  The Economist 2013. How science goes wrong. The Economist. http:\/\/www.economist.com\/news\/leaders\/21588069-scientific-research-has-changed-world-now-itneeds-change-itself-how-science-goes-wrong."},{"key":"e_1_2_1_26_1","unstructured":"Xie Y. 2013. Dynamic documents with R and knitr. Chapman; Hall\/CRC.   Xie Y. 2013. Dynamic documents with R and knitr. Chapman; Hall\/CRC."},{"key":"e_1_2_1_27_1","unstructured":"2014. Examining reproducibility in computer science. http:\/\/cs.brown.edu\/~sk\/Memos\/Examining- Reproducibility\/.  2014. Examining reproducibility in computer science. http:\/\/cs.brown.edu\/~sk\/Memos\/Examining- Reproducibility\/."},{"key":"e_1_2_1_28_1","unstructured":"2012. Mick Watson on Twitter: @ewanbirney @pathogenomenick @ctitusbrown you can't install an image for every pipeline you want... https:\/\/twitter.com\/BioMickWatson\/status\/265037994526928896.  2012. Mick Watson on Twitter: @ewanbirney @pathogenomenick @ctitusbrown you can't install an image for every pipeline you want... https:\/\/twitter.com\/BioMickWatson\/status\/265037994526928896."}],"container-title":["ACM SIGOPS Operating Systems Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2723872.2723882","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2723872.2723882","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T06:16:43Z","timestamp":1750227403000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2723872.2723882"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,1,20]]},"references-count":28,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2015,1,20]]}},"alternative-id":["10.1145\/2723872.2723882"],"URL":"https:\/\/doi.org\/10.1145\/2723872.2723882","relation":{},"ISSN":["0163-5980"],"issn-type":[{"value":"0163-5980","type":"print"}],"subject":[],"published":{"date-parts":[[2015,1,20]]},"assertion":[{"value":"2015-01-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}