生信小伙伴们,需要共享云服务器我们对所有新用户免费提供5小时体验,点击【跳转】注册 体验吧 西柚云超算
更多帮助优惠可添:YFlalalaa 【备注:生信云】
一.介绍
docker是一种容器技术,可以帮助你隔离环境依赖版本,快速构建一个想要的环境。拿Rstudio来说如果你有特殊需求,需要在RStudio中使用不同的R语言版本,安装不同组R包(比如说: seuratV4 和 seuratV5存在严重较大的版本冲突问题 )如果你想在不同版本进行你的实验那么,可以使用Docker部署一个独立的Rstudio。
二核心概念:
- 容器(Container):容器是 Docker 的核心概念之一。它是一个轻量级、独立、可执行的软件包,包含应用程序的代码、运行时、系统工具、系统库以及设置。容器在 Docker 中被用来封装应用程序及其所有依赖关系,以便在任何环境中快速、一致地运行。
- 镜像(Image):镜像是用于创建容器的静态文件,它包含了应用程序运行所需的所有内容,包括文件系统、库和环境变量。镜像可以看作是容器的模板。
三.实践步骤
我们上面提到了一些核心概念,下面我们动手一步步操作一下。
首先我们可以去docker 的镜像官方仓库:https://hub.docker.com (地址)
3.1页面说明
四.命令演示
选择Tags->找到你想要部署的版本 比如4.3.1
4.1拉取镜像
sudo docker pull rocker/rstudio:4.3.1
4.2部署镜像
sudo docker run --name rstudio-4.1.3 -d --restart always -p 空闲端口:8787 -e USER=$(whoami) -e PASSWORD=复杂的密码 -e USERID=$(id -u) -e GROUPID=$(id -g) -v /home/$(whoami)/docker_rstudio_home:/home/$(whoami)/docker_rstudio_home rocker/rstudio:4.1.3
你需要修改的项目
- --name :你需要取一个自己的名字,在容器内是不能重复的
- -p {你的端口}:8787 : docker常常有人在端口这块犯困,前面是你宿主机的端口:后面是容器里面应用的端口
- USER=$(whoami) :是你登录Rstudio的用户名,$(whoami)这个是你linux当前登入的用户名
- PASSWORD=复杂的密码 : 密码是你登录Rstudio的密码
- -v /home/$(whoami)/docker_rstudio_home:/home/$(whoami)/docker_rstudio_home :挂载目录,为什么需要挂载目录因为容器是瞬时状态当它销毁后你的数据就没有了,还有假设你要从容器你们获取数据或者传数据到容器里面去。你需要有一个如果 【前面是宿主机的路径:后面是容器的数据地址】原因见【数据交互】
五.其他
5.1数据交互
推荐进入R Studio后,马上新建一个项目,然后将项目数据保存到docker_rstudio_home目录下,否则容器删除后,数据会丢失。
5.2依赖安装
依赖包安装建议直接在docker中的r studio里安装,有以下三种安装方式
5.3交互数据
同样的,上传数据也是将数据放到docker_rstudio_home目录下,这样在docker里面的R Studio就可以看到你的文件了。
5.4系统依赖安装
这种.so的报错一看就知道是确实某种系统依赖 1.上网查询一下缺失什么 2.去docker容器里面安装
## 查询容器
sudo docker ps
## 进入容器
sudo docker exec -it {容器id} bash
## 比如上图的问题 安装libxml2 这个系统依赖
sudo apt update
sudo apt-get install libxml2
## 退出容器
ctrl + d
六.结束
docker 是一个非常好用的软件,可以让我们快速构建出我们想要安装的环境。通过上面是示例我们也可以很快很轻松的上手。最后祝大家学习进步!!
生信小伙伴们,需要共享云服务器我们对所有 【新用户】免费提供5小时体验,点击【跳转】注册体验吧 西柚云超算
更多帮助优惠可添:YFlalalaa 【备注:生信云】