Question: how can I install packages in docker/R/bioconductor so that they persist?
gravatar for anton.kratz
3.6 years ago by
United States, San Diego, UCSD
anton.kratz50 wrote:

I am using R/bioconductor under docker (mostly because it is much easier for me to install, and I want to enable future reproducibility by others).

I invoke R/bioconductor like this, so that I can access my local files from within it:

docker run -v $(pwd):/home/rstudio/$USER -p 8787:8787 bioconductor/devel_base

This is working great, but now I want to install an additional package (DESeq2). It installs fine, but everytime I restart the docker image, I need to install DESeq2 again! And it takes a long time to download and install.

Can I somehow install DESeq2 into the docker image of bioconductor/devel_base so that it does persist? I.e. I do not want to install it again every time I start the docker image. Or can I somehow save the docker image with the installed DESeq2 in it? Or what is the best approach?

docker • 3.1k views
ADD COMMENTlink written 3.6 years ago by anton.kratz50
Answer: C: how can I install packages in docker/R/bioconductor so that they persist?
gravatar for Vincent J. Carey, Jr.
3.6 years ago by
United States
Vincent J. Carey, Jr.6.3k wrote:

see for

Modifying the images

There are two ways to modify these images:

  1. Making changes in a running container and then committing them using theĀ docker commitcommand.
  2. Using a Dockerfile to declare the changes you want to make.

The second way is the recommended way. Both ways areĀ documented here.

ADD COMMENTlink written 3.6 years ago by Vincent J. Carey, Jr.6.3k

I tried this but I am not quite there yet. First I invoked a container of devel_base:

docker run -ti bioconductor/devel_base R

Now, in the virtual R, I insall DESeq2:


I quite the container:


And now I commit the image:

docker commit -m "Installed DESeq2" -a "Anton Kratz" 5d22a0b73b46 bioconductor/devel_base:v2

This works, I now have an image devel_base:v2 with DESeq2 installed in it, but now how can I invoke a container of devel_base:v2 so that RStudio is running? If I invoke my original command, just changed to use the new image instead:

docker run -v $(pwd):/home/rstudio/$USER -p 8787:8787 bioconductor/devel_base:v2

then in just starts R (command line), immediately exits, and there is no RStudio running at the port I specified (container is still running).

ADD REPLYlink written 3.6 years ago by anton.kratz50
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 312 users visited in the last hour