安装Rstudio Docker的软件包

mic*_*dow 6 rstudio docker

我正在尝试使用Rstudio docker在DigitalOcean服务器上使用Rstudio.由于我对linux服务器的经验有限,对我来说这是一个挑战.

我能够让Rstudio启动并运行:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE rocker/hadleyverse
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够关闭服务器并在我不使用它时将其保存到快照,但每次我都不需要重新安装软件包.

使用docker文档更新映像,我可以创建一个容器,在该容器上安装包,然后提交更改:

docker run -t -i rocker/hadleyverse /bin/bash
install.r randomForest
exit
docker commit \<CONTAINER_ID> michael91/ms:v1
Run Code Online (Sandbox Code Playgroud)

但是,一旦我进行提交,我就无法正确运行更新的映像.我尝试按如下方式运行它:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE michael91/ms:v1
Run Code Online (Sandbox Code Playgroud)

当我这样做时,Rstudio服务器没有激活,就像我运行原始摇杆/ hadleyverse版本时一样.我尝试过安装包和不安装包的提交; 无论哪种方式,它似乎都不起作用.显然我做错了什么,但我不确定是什么.如果有人能给我一些指导,我真的很感激.

编辑:非常感谢VonC; 这就是诀窍.

Von*_*onC 4

这可能是因为新提交的图像已经丢失CMD了 中存在的指令rocker-org/rocker/rstudio/Dockerfile#L58

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d /supervisord.conf"]
Run Code Online (Sandbox Code Playgroud)

尝试创建一个新的 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"]
Run Code Online (Sandbox Code Playgroud)

并将其构建为michael91/ms:v2.

然后看看在激活 RStudio 时 v2 比 v1 效果更好:

docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE michael91/ms:v2
Run Code Online (Sandbox Code Playgroud)