检索R服务:
docker search r-base
安装部署R:
docker pull r-base:4.0.2
拉取成功后查看镜像 docker images:
docker images
启动R容器:
docker run -ti --rm r-base
首先你可以直接 docker run -ti --rm r-base 交互式运行一个R语言的容器,但是,基于后续使用时,R环境拉取依赖包很费时间,
很多时候你可能会从以前的环境中直接拷贝library依赖包到现有环境中,所有,建议将物理目录与容易依赖包目录进行挂载互通,
以方便直接使用现成的依赖包,所以建议使用以下命令进行启动容器:
docker run -it --name R402 -v /mydata/R/site-library:/usr/local/lib/R/site-library r-base:4.0.2
解释:
a、–name R402 是个容器命名为R402方便使用容器。
b、 /usr/local/lib/R/site-library:/usr/local/lib/R/site-library 将物理目录:/usr/local/lib/R/site-library 与容器目录:/usr/local/lib/R/site-library进行挂载互通,
其中冒号(:)前面的是物理目录,后面的是容器目录,当然你也可以挂载任意一个物理目录作为依赖包的存放目录。这里挂载的目的是为了很多依赖包下载不下来,
通过其他方式拿到依赖包时,可以直接copy到挂的的目录,以达到使用依赖包的目的。
c、r-base:4.0.2是我们要依赖的镜像以及它的版本
注意,挂载物理目录与容器目录后,如果你从其他环境复制了依赖包到当前机器的依赖包中,需要重启容器才能生效使用:
停止容器:docker stop R402
启动容器:docker start R402
交互式进入容器:docker exec -it R402 bash
进入R命令界面:R
特别注意:使用Rserve进行与java交互时,要注意:
1、Rserve版本,一定要大于等于1.否则报错
1.1、进入R命令界面,查看Rserve版本(packageVersion(“Rserve”))
1.2、如果版本低,则执行:(“Rserve”, “Rserve_1.”, “/”)
2、一定要开启远程访问模式,否则java无法连接Rserve:
2.1、先docker stop R402,再次docker start R400启动
2.2、进入容器docker exec -it R400 bash
2.3、使用命令:R CMD Rserve --RS-enable-remote 开启远程访问
然后即可使用。