创建存放Dockerfile的目录,后续操作将在这个目录下进行。
mkdir r_dockerfile
cd ./r_dockerfile
下载R包:
wget http://cran.rstudio.com/src/base/R-4/R-4.1.0.tar.gz
编写Dockerfile文件:
Dockerfile文件说明
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。
touch mydockerfile
vim mydockerfile
# 拉取一个centos的docker镜像
FROM centos
# 声明作者是nanlist
MAINTAINER nanlist
#创建目录
RUN mkdir -p /home/Software/R
# 前一个 R-4.1.0.tar.gz 为上传的安装包,后一个 R-4.1.0.tar.gz 是将当前服务器中安装包对应在容器中
COPY R-4.1.0.tar.gz /home/Software/R/R-4.1.0.tar.gz
#RUN 执行以下命令
RUN yum -y install gcc glibc-headers gcc-c++ gcc-gfortran readline-devel libXt-devel bzip2-devel xz-devel perl* pcre* zlib-devel libcurl-devel
#R语言安装依赖
RUN yum install -y texlive
RUN yum install java-1.8.0-openjdk* -y
#当命令发生错误的时候,停止脚本的执行
RUN set -ex \
&& cd /home/Software/R \
&& tar -zxvf R-4.1.0.tar.gz \
&& cd R-4.1.0 \
&& mkdir /usr/local/R410 \
&& ./configure --enable-R-shlib=yes --with-tcltk --prefix=/usr/local/R410 \
&& make && make install \
&& ln -s /usr/local/R410/bin/R /usr/local/bin/python3 \
&& ln -s /usr/local/R410/bin/Rscript /usr/local/bin/pip3
build构建镜像:
docker build -f mydockerfile -t v1_r:4.1.0 .
查看:
docker images
运行容器:
docker run -it --name nanlist_R -v /home:/home v1_r:4.1.0 bash