基于Docker的AI开发环境(CUDA+PyTorch)部署指南

本教程提供从零开始的保姆级部署流程,支持GPU加速的深度学习开发环境。


前置准备
  1. 硬件要求

    • NVIDIA显卡(支持CUDA)
    • 显存 ≥ 4GB(推荐8GB+)
    • 存储空间 ≥ 20GB
  2. 软件要求

    • 操作系统:Ubuntu 20.04/22.04(Windows/macOS需先安装Linux虚拟机)
    • 已安装NVIDIA驱动(版本需匹配CUDA)
    • Docker Engine ≥ 19.03(安装教程

步骤1:安装NVIDIA容器工具包
# 添加软件源
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 安装工具包
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker


步骤2:拉取PyTorch官方镜像
# 拉取预装CUDA 11.8和PyTorch 2.0的镜像
docker pull pytorch/pytorch:2.0.1-cuda11.8-cudnn8-runtime

# 验证镜像
docker run --gpus all --rm pytorch/pytorch:2.0.1-cuda11.8-cudnn8-runtime nvidia-smi

✅ 成功标志:显示GPU信息表格(含Driver/CUDA版本)


步骤3:创建持久化开发容器
# 启动容器(挂载本地目录)
docker run -itd --gpus all \
  --name pytorch_dev \
  -v ~/ai_projects:/workspace \  # 挂载项目目录
  -p 8888:8888 \                 # Jupyter端口
  pytorch/pytorch:2.0.1-cuda11.8-cudnn8-runtime

# 进入容器
docker exec -it pytorch_dev bash


步骤4:容器内环境验证

在容器内执行:

# 启动Python解释器
python

>>> import torch
>>> print(torch.__version__)          # 应输出 2.0.1
>>> print(torch.cuda.is_available()) # 应输出 True
>>> print(torch.rand(3,3).cuda())     # 应输出GPU张量

输出示例:

tensor([[0.4821, 0.4157, 0.2309],
        [0.1396, 0.7930, 0.2416],
        [0.9539, 0.1234, 0.8521]], device='cuda:0')


步骤5:可选组件安装
# 在容器内安装常用工具
pip install jupyterlab matplotlib scikit-learn pandas
jupyter lab --ip=0.0.0.0 --allow-root  # 启动Jupyter

# 浏览器访问:http://localhost:8888


常见问题排查
问题现象解决方案
docker: Error response from daemon...执行 sudo systemctl restart docker
CUDA unavailable检查宿主机NVIDIA驱动版本与容器CUDA版本兼容性
端口冲突更改 -p 参数(如 -p 8899:8888
存储空间不足清理镜像:docker system prune -a --volumes

环境使用建议
  1. 开发流程

    • 代码编辑:在挂载的 ~/ai_projects 中使用本地IDE
    • 训练执行:在容器内运行 python train.py
    • 数据管理:挂载数据集目录 -v /datasets:/data
  2. 镜像管理

    # 保存自定义镜像
    docker commit pytorch_dev my_custom_pytorch
    
    # 导出镜像
    docker save -o pytorch_env.tar my_custom_pytorch
    

注:完整Dockerfile构建方案见PyTorch官方仓库

更多推荐