我正在尝试使用Rstudio docker在DigitalOcean服务器上使用Rstudio。由于我对linux服务器的经验有限,对我来说这是一个挑战。
我可以通过以下方式启动Rstudio并运行:
docker run -dp 8787:8787 -v /root:/home/rstudio/ -e ROOT=TRUE rocker/hadleyverse
但是,我希望能够关闭服务器并在我不使用时将其保存到快照中,但每次我都不需要重新安装软件包。
使用docker documentation on updating an image,我可以创建容器,在该容器上安装包,然后提交更改:
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服务器没有激活,就像我运行原始摇杆/ hadleyverse版本时一样。我尝试过安装包和不安装包的提交;无论哪种方式,它似乎都不起作用。显然我做错了什么,但我不确定是什么。如果有人能给我一些指导,我真的很感激。
编辑:非常感谢VonC;这就是诀窍。
答案 0 :(得分:3)
可能是因为新提交的图片丢失了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