Docker¶
docker/podman¶
docker
是容器工具,可以用来构建可重现的开发环境。
podman
是docker
的替代工具,与docker
的命令兼容,可以在不需要root
权限的情况下使用。
docker 镜像选择¶
在配置环境时,如果需要特定版本的操作系统,可以在 Docker Hub或者AWS ECR上搜索对应操作系统的 tag。
如果需要特定软件的安装环境,也可以在上述网站搜索对应软件的镜像。这些镜像内通常都安装了对应的依赖,使用起来比较方便。比如,这个页面上可以找到不同版本的python
镜像。
如果需要使用 GPU,可以在NVIDIA NGC上搜索镜像,找到安装好PyTorch
或Tensorflow
的镜像。比如,这个页面上可以找到不同版本PyTorch
的镜像。
如果这些基础镜像都不满足需求,可以使用自己构建镜像。方法可以参考这里。因为这个相对复杂,最快的方法是向有经验的同学描述自己的问题,请他帮忙写Dockerfile
。
下面是一个zsim
镜像的例子。
FROM public.ecr.aws/ubuntu/ubuntu:18.04_stable
RUN apt-get update; \
apt-get install -y --no-install-recommends \
gcc \
g++ \
scons \
libelf-dev; \
rm -rf /var/lib/apt/lists/*
ENV LIBCONFIGPATH /libconfig
ENV HDF5PATH /hdf5
ENV PINPATH /pin-2.14-71313-gcc.4.4.7-linux
COPY ./deps /
WORKDIR /zsim
docker 基本操作¶
具体操作见tldr docker
命令的输出。这里只强调一下使用 GPU 的命令。
其中,--gpus all
表示使用所有 GPU。-v
将本地目录挂载到容器内的目录。