stevedore
implements a docker client for R. Docker is a
framework for "containerisation" - abstracting the details of how
software is installed and run. It is conceptually similar to
virtualisation but much lighter weight.
Within the R space containers have been discussed for:
Reproducible research: collecting all dependencies for an analysis into an image that can be run by other people without installation headaches.
Testing packages: Collect all the requirements of a package together and run your tests in an isolated environment.
Containers can also be used to construct larger applications with multiple processes that need to talk to each other - for example a database, API server and proxy server. One might also implement something like a set of shiny servers that are load balanced through a proxy!
This package provides a complete interface to docker allowing you
to basically everything that can be done from the command line
from within R. All communication happens over docker's HTTP API
and does not use system commands. As a result, the information
returned back to R is richer and the interface is likely to be
reliable than parsing the command line output. stevedore
's
interface is largely automatically generated so will track new
features available in the docker daemon closely.
The interface is designed to be similar to docker's command link API - the command for creating a network on the command line is
docker network create mynetwork
and in stevedore
can be done as
docker <- stevedore::docker_client()
docker$network$create("mynetwork")
Familiarity with the command line interface will be helpful but probably as much because of the concepts as the details.
To get started, please see the package vignette - running
vignette("stevedore")
will work if the package was
installed with the vignettes, or see
https://richfitz.github.io/stevedore/. A good place to get
started with the reference documentation is the
docker_client
function.