什么是Docker
Docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。
因此我们可以看到docker可以屏蔽环境差异,也就是说,只要你的程序打包到了docker中,那么无论运行在什么环境下程序的行为都是一致的,程序员再也无法施展表演才华了,不会再有“在我的环境上可以运行”,真正实现“build once, run everywhere”。
此外docker的另一个好处就是快速部署,这是当前互联网公司最常见的一个应用场景,一个原因在于容器启动速度非常快,另一个原因在于只要确保一个容器中的程序正确运行,那么你就能确信无论在生产环境部署多少都能正确运行。
Docker 的安装
Docker作为整个环境可以使用Pull 拉取已经建立好的镜像,也可以使用build 搭建自己的镜像。
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
本文主要介绍使用Docker File 的方法搭建自己镜像的过程,,涉及的软件主要为Python和R平台,最终会用Jupyter lab加载镜像
使用Docker file 安装Python/R包
使用Conda 安装
代码语言:txt复制RUN conda install -y -q -c bioconda r-pheatmap
RUN mamba install -y -q -c conda-forge matplotlib # 使用mamba 加速下载
使用pip 安装Python包
代码语言:txt复制RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scanpy # 使用清华镜像加速
使用Install.packages 安装R包
代码语言:txt复制RUN R -e 'install.packages("textshaping",repos="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")' # 使用清华镜像
使用devtools下载github R包
代码语言:txt复制RUN mamba install -y -q -c conda-forge r-devtools
RUN R -e 'devtools::install_github("saeyslab/nichenetr")'
建议每个包单个命令安装,有防报错
conda安装nichenetr中存在包的冲突 可以使用devtools安装
https://zhuanlan.zhihu.com/p/187505981(什么是Docker)