安装 Rstudio Docker 的软件包

7
我将尝试使用Rstudio docker在DigitalOcean服务器上运行Rstudio。由于我对Linux服务器的经验有限,这对我来说是一个挑战。
我可以通过以下步骤启动和运行Rstudio:
docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE rocker/hadleyverse

然而,当我不使用服务器时,希望能够关闭服务器并将其保存到快照中,但不必每次重新安装软件包。
使用docker更新映像的文档,我可以创建一个容器,在该容器上安装软件包,然后提交更改:
docker run -t -i rocker/hadleyverse /bin/bash
install.r randomForest
exit
docker commit \<CONTAINER_ID> michael91/ms:v1

然而,一旦我提交了代码,我就无法正确地运行更新后的镜像。我尝试按照以下方式运行它:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE michael91/ms:v1

当我这样做时,Rstudio服务器没有激活,而当我运行原始的rocker/hadleyverse版本时则会激活。我尝试过安装和不安装软件包来进行提交;但无论哪种方式似乎都不起作用。显然我做错了什么,但我不确定是什么。如果有人能给我一些指导,我将非常感激。
编辑:非常感谢VonC;那解决了问题。

太好了!欢迎来到 Stack Overflow。别忘了参观一下导览页面(http://stackoverflow.com/tour)并阅读 http://stackoverflow.com/help/accepted-answer。 - VonC
请注意,只需将默认命令附加到容器的末尾即可;例如 docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE michael91/ms:v1 supervisord - cboettig
1个回答

4
可能是因为新提交的镜像丢失了在rocker-org/rocker/rstudio/Dockerfile#L58中存在的CMD指令。
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d /supervisord.conf"]

请尝试创建一个新的Dockerfile:

FROM michael91/ms:v1
## Add RStudio binaries to PATH
ENV PATH /usr/lib/rstudio-server/bin/:$PATH 
ENV LANG en_US.UTF-8
EXPOSE 8787

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

请将其构建为michael91/ms:v2

然后,当激活RStudio时,看到v2比v1更有效:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE michael91/ms:v2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接