Skip to content

Docker

docker/podman

docker是容器工具,可以用来构建可重现的开发环境。

podmandocker的替代工具,与docker的命令兼容,可以在不需要root权限的情况下使用。

alias docker=podman

docker 镜像选择

在配置环境时,如果需要特定版本的操作系统,可以在 Docker Hub或者AWS ECR上搜索对应操作系统的 tag。

docker pull ubuntu:18.04

如果需要特定软件的安装环境,也可以在上述网站搜索对应软件的镜像。这些镜像内通常都安装了对应的依赖,使用起来比较方便。比如,这个页面上可以找到不同版本的python镜像。

docker pull python:3.12

如果需要使用 GPU,可以在NVIDIA NGC上搜索镜像,找到安装好PyTorchTensorflow的镜像。比如,这个页面上可以找到不同版本PyTorch的镜像。

docker pull nvcr.io/nvidia/pytorch:24.12-py3

如果这些基础镜像都不满足需求,可以使用自己构建镜像。方法可以参考这里。因为这个相对复杂,最快的方法是向有经验的同学描述自己的问题,请他帮忙写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 的命令。

docker run --gpus all -it --rm –v local_dir:container_dir nvcr.io/nvidia/pytorch:21.02-py3

其中,--gpus all表示使用所有 GPU。-v将本地目录挂载到容器内的目录。