提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
参考docker官方文档,利用Dockerfile文件,制作一个自己的基准镜像。
一、目标
pytorch官方镜像下载下来以后不能直接使用,还需要自己装一些东西。建一个容器就得装一次,太麻烦了。所以学习了一下自己定制基准镜像的方法。
我要用到的python库主要有三个:pytorch、opencv、gdal,其他库可以按需要自行增加。
进入到Dockerfile所在的文件夹,文件夹中只保留这一个文件,否则会将其他文件一起打包到镜像,浪费时间和空间。通过Dockerfile构建镜像的命令如下:
docker build -f dockerfile -t pytorch:1.9.0 .
-t 输入标签,也可以写成-tag,其中pytorch为镜像名,1.9.0为镜像版本号。
-f 指定dockerfile文件。
PS:最后那个.不能忘了
二、方法
1.以gdal镜像作为基准(推荐)
构建Dockerfile文件,内容如下:
# syntax=docker/dockerfile:1
From osgeo/gdal:ubuntu-full-latest
WORKDIR /workdir
ENV DEBIAN_FRONTEND noninteractive
RUN apt update && \
apt install -y libglib2.0-dev && \
apt install -y libgl1-mesa-glx && \
apt install -y python3.8 && \
apt install -y python3-pip && \
apt install -y git && \
apt-get clean
RUN pip3 install opencv-python && \
pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html && \
pip3 install numpy && \
pip3 install matplotlib && \
pip3 install tqdm && \
pip3 install glob
构建好的镜像约8.76G。
2.以pytorch镜像作为基准
构建Dockerfile文件,内容如下:
# syntax=docker/dockerfile:1
From pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel
WORKDIR /workdir
ENV DEBIAN_FRONTEND noninteractive
RUN apt update && \
apt install -y libglib2.0-dev && \
apt install -y libgl1-mesa-glx && \
apt-get clean
RUN apt install -y software-properties-common && \
add-apt-repository ppa:ubuntugis/ppa && \
apt install -y gdal-bin && \
apt install -y libgdal-dev && \
export CPLUS_INCLUDE_PATH=/usr/include/gdal && \
export C_INCLUDE_PATH=/usr/include/gdal && \
pip3 install gdal==2.4.2 && \
pip3 install opencv-python
构建好的镜像约18G。
gdal的版本号2.4.2是在执行完“export C_INCLUDE_PATH=/usr/include/gdal”后通过命令gdalinfo --version查看得到的,不知道怎么加到dockerfile中。
总结
推荐使用gdal镜像作为基准有两个好处:1)制作好的镜像体积小,节省空间;2)可以使用最新的gdal,通过第二种方法制作镜像,虽然也可以将gdal打包进去,但是gdal版本限制在了2.4.2,且过程比较繁琐。