人生第一次尝试DockerFile来安装Docker

2023-07-21 10:54:48 浏览数 (4)

什么是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)

0 人点赞