【Linux】在服务器上安装基于docker的rstudio
本文记录在服务器上安装基于 docker 的 rstudio 的配置过程
下载镜像
查看已有镜像
1 | docker images |
下载 RStudio Server 镜像
1 | docker pull docker.1ms.run/rocker/rstudio:latest |
启动容器
在50004端口启动rstudio容器
1 | docker run -d \ |
参数详解
docker run:创建并启动一个新的容器实例。-d:后台运行容器--name rstudio_server:给容器起个固定的名字rstudio_server,方便后续管理(如停止、重启)。-p 50004:8787:将服务器的 50004 端口映射到容器内部的 8787 端口(RStudio 默认端口)。-e PASSWORD==<密码>:设置 RStudio 网页登录界面的密码。-e ROOT=true:赋予默认用户管理员权限(sudo),允许在终端安装 Linux 系统软件。-e USERID=$(id -u):将容器内用户 ID 同步为宿主机当前用户 ID,解决 NFS 文件读写权限问题。-e GROUPID=$(id -g):将容器内用户组 ID 同步为宿主机当前用户组 ID。-e TZ=Asia/Shanghai:将容器内的系统时间设置为北京时间(Asia/Shanghai)。-v /mnt/nfs_share/tlj/Project:/home/rstudio/Project:数据持久化。将宿主机的 NFS 项目目录挂载到容器内的/home/rstudio/Project中。这样即使删除了容器,代码和数据也会保存在服务器上,不会丢失。--restart=always:设置容器在崩溃、Docker 重启或服务器重启后自动重新启动。docker.1ms.run/rocker/rstudio:指定用于创建该容器的 RStudio 镜像名称。
查看容器启动日志
1 | docker logs rstudio_server |
启动成功后,在浏览器输入 http://192.168.205.185:50004/ 即可出现登陆界面
用户名:rstudio
密码为自己所设置的密码
如果要添加新的启动参数并重启,需要先删除旧容器:
1 | docker rm -f rstudio_server |
其他常用命令
查看正在运行中容器
1 | docker ps |
重启/停止/启动容器
1 | docker restart rstudio_server |
把当前容器打包成新镜像
1 | docker commit rstudio_server tlj-rstudio |
查看打包后的镜像
1 | docker images |
安装常用包
安装 Linux 库
1 | sudo apt-get update |
安装常用R包
1 | install.packages(c("tidyverse","BiocManager","devtools","ggpubr","Seurat")) |
测试
1 | library(Seurat) |
常见问题
RStudio Initialization Error
1 | RStudio Initialization Error |
解决方法:不能直接把宿主机的目录挂在到容器内的 /home/rstudio
修改容器内的文件 Permission denied
解决方法:启动时添加以下参数,确保容器中的 uid/gid 与宿主机上的 uid/gid 一致,这样就有了写权限
1 | -e USERID=$(id -u) \ |
设置-e USER=tlj 不起作用
原因:容器的初始化脚本逻辑优先处理了 USERID 的修改(为了匹配宿主机权限),导致它强制重建了默认的 rstudio 用户,从而忽略了自定义的用户名参数。
解决方法:就用rstudio用户名就行,用户名不影响任何东西
R包提示缺少库文件
1 | unable to load shared object '/usr/local/lib/R/site-library/igraph/libs/igraph.so': |
解决方法:在 Rstudio 的 Terminal 正常使用 apt 安装相关库即可
1 | sudo apt-get update |
参考
rstudio+docker项目官方指南:https://rocker-project.org/images/versioned/rstudio.html
docker镜像站:https://1ms.run/
评论