如安在服务器中利用docker搭建Rstudio分析环境

打印 上一主题 下一主题

主题 1023|帖子 1023|积分 3069

如安在服务器中利用docker搭建Rstudio分析环境

   起首确保docker已经安装成功而且成功运行

  1. # docker命令在root权限下运行,本教程以centos 9为例
  2. # 查看docker详细信息
  3. docker info
复制代码

  成功安装则会表现如图的具体docker信息
  1. # 查看docker是否运行
  2. systemctl status docker
复制代码

  一、利用dockerhub已有镜像举行摆设

1、docker拉取镜像

在docker中查找所需的docker镜像rstudio:此处以 rocker/rstudio:latest为例
  1. docker pull rocker/rstudio:latest
复制代码
2、利用下载好的镜像创建容器

  1. docker run -itd -p 8888:8787 -d --restart always --name test -v /home/test/rstudio/:/home/test rocker/rstudio:latest
  2. # 注:使用拉取到服务器中的镜像在test用户rstudio文件夹下挂载
  3. # 1、尽量不要使用8787端口,改用其他端口,如8888是我自己设置的映射端口
  4. # 2、-d --restart always设置自动启动容器,否则服务器重启或docker服务重启之后,该容器还处于stop状态
  5. # 3、若忘记设置restart always可使用:docker update --restart=always test进行更新
复制代码
3、在创建好的容器中创建用户

  1. #  进入test容器内部
  2. docker exec -it test bash
  3. # 创建用户:即Rstudio-server登录界面的用户,此处1001为test用户的用户组号,具体根据自己的子用户进行更改
  4. adduser -u  1001 test
  5. # 输入密码,重复输入两次即可
  6. # 更改该容器中root密码,设置密码即可在Rstudio的终端中运行su命令进入root权限
  7. passwd
复制代码
4、更改用户rstudio文件夹权限

  1. # 由于docker创建的容器是在root权限下进行的,因此该文件夹权限属于root,需要将其权限改为test所属
  2. chown -R test.test /home/test/rstudio
复制代码
5、Rstudio-Server登录

  1. # 查看服务器ip
  2. hostname -i
  3. #使用服务器ip+端口号在浏览器中即可登录,输入上述创建的账号密码
  4. ip:8888
复制代码
至此,用户test即可利用Finalshell软件连接服务器在rstudio文件夹下举行文件上传和下载,需注意:由于linux安装R包所需的依靠导致R包安装不上,在Rstudio的终端中su进入root根据相应的R包依靠库举行安装,随后在安装R包即可安装成功
二、自定义Dockerfile举行摆设–保举

   由于不同用户对R包的需求不一,因此保举利用Dockerfile自定义安装所需的R包,摆设好的Rstudio-server将自带这些R包,不再必要手动安装

  此处仍以上述的空缺R包的Rstudio-server为例
1、Dockerfile文件DIY

  1. vim  Dockerfile
  2. # 根据R包的需要进行自定义Dockerfile文件,以下内容复制到Dockerfile文件中
  3. # 由于R包很多,因此花费时间较长约3小时,不同用户可以自定义所需的R包
  4. FROM rocker/rstudio:latest
  5. ARG bioc_ver=3.19
  6. RUN apt-get clean all && \
  7.     apt-get update && \
  8.     apt-get upgrade -y && \
  9.     apt-get install -y \
  10.         libhdf5-dev \
  11.         libssl-dev \
  12.         libxml2-dev \
  13.         libpng-dev \
  14.         libxt-dev \
  15.         zlib1g-dev \
  16.         libbz2-dev \
  17.         liblzma-dev \
  18.         libglpk40 \
  19.         libgit2-dev \
  20.         libbz2-dev \
  21.         libfontconfig1-dev \
  22.         libharfbuzz-dev \
  23.         libhdf5-dev \
  24.         patch \
  25.         libharfbuzz-dev \
  26.         libfribidi-dev \
  27.         libfreetype6-dev \
  28.         libpng-dev \
  29.         libtiff5-dev \
  30.         libjpeg-dev \
  31.         jags \
  32.         libgmp3-dev \
  33.         libmpfr-dev \
  34.         libv8-dev \
  35.         libcairo2-dev \
  36.         libmagick++-dev \
  37.         cmake \
  38.         libgdal-dev \
  39.         libssl-dev \
  40.         libssh2-1-dev \
  41.         libxml2-dev \
  42.     && apt-get clean all && \
  43.     apt-get purge && \
  44.     rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
  45. RUN Rscript -e "install.packages(c('rmarkdown', 'tidyverse', 'workflowr', 'BiocManager', 'pacman', 'devtools', 'hdf5r', 'ggiraphExtra', 'magick','alphahull', 'dbscan'), ask = F, update = F, dependencies = T);"
  46. RUN Rscript -e "BiocManager::install(version = '${bioc_ver}')"
  47. RUN Rscript -e "library(pacman);pacman::p_load(ggplot2, dplyr, data.table, magrittr, patchwork, RColorBrewer, clustree, cowplot,harmony, ggrepel, GSVA, clusterProfiler, survminer, ggpubr, stringr, rio, pheatmap, survival,sctransform, tibble,futile.logger, ggrisk, ggstatsplot, timeROC, maftools, edgeR, DESeq2, FactoMineR, factoextra, org.Hs.eg.db, stringi,cowplot, ggsci, VennDiagram, ggplotify, GEOquery, TCGAbiolinks, SummarizedExperiment, scCustomize, xml2, rvest, raster, rmarkdown, rticles, openai, update = F)"
  48. RUN Rscript -e "BiocManager::install(c(‘seurat’,'GSEABase', 'GEOquery', 'limma', 'impute', 'hgu133plus2.db', 'infercnv', 'SingleR', 'tidydr','simplifyEnrichment', 'biomaRt', 'EnsDb.Hsapiens.v86', 'Rhtslib', 'Rsamtools', 'GenomicAlignments','rtracklayer', 'GenomicFeatures', 'ensembldb', 'paletteer', 'ggdendro', 'monocle', 'BiocGenerics', 'DelayedArray', 'DelayedMatrixStats','S4Vectors','SingleCellExperiment','batchelor', 'kstreet13/slingshot'), ask = F, update = F, dependencies = T)"
复制代码
2、创建docker镜像

  1. docker build -t test_image/rstudio:r.4.4.1 .
  2. #.表示Dockerfile在当前目录下
复制代码
3、利用自定义的docker镜像创建容器

  1. docker run -itd -p 8888:8787 -d --restart always --name test -v /home/test/rstudio/:/home/test test_image/rstudio:r.4.4.1
  2. # 后续操作同前文一样,创建用户,更改rstudio文件夹权限
复制代码
4、在创建好的容器中创建用户

  1. #  进入test容器内部
  2. docker exec -it test bash
  3. # 创建用户:即Rstudio-server登录界面的用户,此处1001为test用户的用户组号,具体根据自己的子用户进行更改
  4. adduser -u  1001 test
  5. # 输入密码,重复输入两次即可
  6. # 更改该容器中root密码,设置密码即可在Rstudio的终端中运行su命令进入root权限
  7. passwd
复制代码
5、更改用户rstudio文件夹权限

  1. # 由于docker创建的容器是在root权限下进行的,因此该文件夹权限属于root,需要将其权限改为test所属
  2. chown -R test.test /home/test/rstudio
复制代码
6、Rstudio-Server登录

  1. # 查看服务器ip
  2. hostname -i
  3. #使用服务器ip+端口号在浏览器中即可登录,输入上述创建的账号密码
  4. ip:8888
复制代码
三、将本身的Dockerfile镜像打包迁徙至新的服务器举行摆设

1、在原服务器上打包已有镜像

  1. # 以上述的Dockfile创建的镜像为例
  2. docker save -o test_image.tar test_image/rstudio:r.4.4.1
  3. # 使用finalshell将其下载到本地,并上传到新服务器中
复制代码
2、在新服务器上摆设镜像

  1. docker load -i test_image.tar
  2. # 使用docker images查看镜像,即在新服务器中存在test_image/rstudio:r.4.4.1镜像
复制代码
后续创建容器和添加用户流程和上述同等

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表