You only know two things about Docker. First, it uses Linux containers. Second, the Internet won’t shut up about it. — attributed to Solomon Hykes, Docker CEO
So what is Docker?Docker is a relatively new open source application and service, which is seeing interest across a number of areas. It uses recent Linux kernel features (containers, namespaces) to shield processes. While its use (superficially) resembles that of virtual machines, it is much more lightweight as it operates at the level of a single process (rather than an emulation of an entire OS layer). This also allows it to start almost instantly, require very little resources and hence permits an order of magnitude more deployments per host than a virtual machine. Docker offers a standard interface to creation, distribution and deployment. The shipping container analogy is apt: just how shipping containers (via their standard size and “interface”) allow global trade to prosper, Docker is aiming for nothing less for deployment. A Dockerfile provides a concise, extensible, and executable description of the computational environment. Docker software then builds a Docker image from the Dockerfile. Docker images are analogous to virtual machine images, but smaller and built in discrete, extensible and reuseable layers. Images can be distributed and run on any machine that has Docker software installed—including Windows, OS X and of course Linux. Running instances are called Docker containers. A single machine can run hundreds of such containers, including multiple containers running the same image. There are many good tutorials and introductory materials on Docker on the web. The official online tutorial is a good place to start; this post can not go into more detail in order to remain short and introductory.
So what is Rocker?style=”float:left;margin:10px 40px 10px 0;” width=”100″ height=”100″ src=”https://en.gravatar.com/userimage/73204427/563567819bd642c7a9e3af9d8ddb7581.png?size=100″/> At its core, Rocker is a project for running R using Docker containers. We provide a collection of Dockerfiles and pre-built Docker images that can be used and extended for many purposes. Rocker is the the name of our GitHub repository contained with the Rocker-Org GitHub organization. Rocker is also the name the account under which the automated builds at Docker provide containers ready for download.
Current Rocker Status
Core Rocker ContainersThe Rocker project develops the following containers in the core Rocker repository
- r-base provides a base R container to build from
- r-devel provides the basic R container, as well as a complete R-devel build based on current SVN sources of R
- rstudio provides the base R container as well an RStudio Server instance
Rocker Use Case ContainersWithin the Rocker-org organization on GitHub, we are also working on
- Hadleyverse which extends the rstudio container with a number of Hadley packages
- rOpenSci which extends hadleyverse with a number of rOpenSci packages
- r-devel-san provides an R-devel build for “Sanitizer” run-time diagnostics via a properly instrumented version of R-devel via a recent compiler build
- rocker-versioned aims to provided containers with ‘versioned’ previous R releases and matching packages