Docker部署Rstudio server
背景:如果您想在服务器上运行RstudioServer,可以按照如下方法进行操作,笔者测试时使用天意云服务器(系统centos7),需要在管理员权限下运行
Rstudio 官方提供了使用不同 R 版本的 Rstudio 镜像,使用 docker 来运行它们就可以在容器中使用不同的 R 版本,此方法非常的简单方便,开箱即用。
第一步:安装docker
- 打开终端,输入
cat /etc/os-release
查看系统信息 - 检查系统版本,如果Linux的发行版系统是centOS,安装最新版的docker需要centOS 7以上的系统
step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 Step 2: 添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo Step 3: 更新yum索引列表并安装Docker引擎 sudo yum makecache fast Step 4: 开启Docker服务 sudo service docker start
- 配置仓库镜像
- 完成(输入docker出现提示信息)
第二步:安装Rstudio镜像
在安装了Docker,但没有容器运行的机器上,直接输入下面的一行命令并运行:
docker run -p 8787:8787 -e PASSWORD=yourpasswordhere rocker/rstudio
注意:密码部分要根据自己情况进行修改,默认安装的是最新版本。
根据官方说明,此时以用户名rstudio
,密码yourpasswordhere
,即可成功登录Rstudio Server,使用浏览器打开IP:端口即可使用,该服务运行于虚拟机中,不会影响外部配置信息,刚刚查看已经更新到4.2.3的版本了
image-20230328194953732
- 安装指定版本的R和Rstudioserver
https://hub.docker.com/r/rocker/rstudio/tags打开官网后,可以自由选择指定版本,如果不加参数,默认使用最新版。比如,想使用3.6版本的R,只需把命令末尾的rocker/rstudio
替换为rocker/rstudio:3.6.1
即可
第三步:文件传输
docker容器内是个完整的linux系统,这个系统共享宿主机内核,但其上层却是和宿主机隔离的,因而docker内部可以随意折腾,而不必担心把宿主机的系统弄崩溃,直接通过网页进入Rstudio后,发现里边无法找到我们所需要的文件。
若需要用这个Rstudio处理宿主机上的数据,我们需要将宿主机上的路径映射如容器内。通过-v
参数实现,命令格式-v outDir:inDir
,outDir
为宿主机的路径,inDir
为docker容器内映射的路径,两者都需要写绝对路径。
docker run -p 8787:8787 -e PASSWORD=yourpasswordhere \ -v /mnt/public:/home/rstudio/public_data \ rocker/rstudio
可以通过多个-v
参数,往容器中挂载多个路径。
第四步:端口映射
可以通过-p
参数将容器内部的端口映射到宿主机上,以便容器能够能够对外提供服务或者方便外部访问宿主机。命令格式-p outPort:inPort
,outPort
为映射出的宿主机端口,inPort
为容器内部端口。
若宿主机同时运行多个镜像,多个镜像间,端口不要冲突 例如,某个正在运行的Rstudio容器,已经占据了8787端口,那么新启动的Rstudio容器,需要避开这个端口,例如将端口设置为-p otherPort:8787
等,冒号前是外部端口,冒号后是docker内端口
重要补充
- 环境变量
-e
:
- PASSWORD:登录密码,必须设置
- USER:用户名
- ROOT:是否允许容器内对外部具有最高权限,这个一般需要关闭,如果开启的话虚拟机中可以对外部主机进行任意修改,很危险
- 一键式启动方案
docker run --name myRstudio -d --restart always\ -p 8787:8787 \ -p 3838:3838 \ -e USER=user \ -e PASSWORD=passwd \ -e USERID=1000 \ -e GROUPID=1000 \ -e ADD=shiny \ -v /mnt/public:/home/ \ rocker/rstudio
END
© 素材来源于网络,侵权请联系后台删除
往期推荐: