我正在尝试使用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; 这就是诀窍.
这可能是因为新提交的图像已经丢失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)
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |