Docker环境CUDA不可用:如何配置Python3.8.10+PyTorch调用GPU
问题分析与解决方案
缺失的配置
- 基础镜像无CUDA运行时环境:你使用的
python:3.8.10是普通Python镜像,未预装CUDA runtime、cuDNN等GPU依赖库,PyTorch的CUDA版本必须依赖系统级的CUDA环境才能调用GPU。 - 容器未启用GPU访问权限:启动容器时未配置GPU暴露,Docker默认不会将主机GPU资源分配给容器。
正确构建与运行步骤
1. 主机前提配置
确保主机已安装nvidia-docker2(用于支持Docker容器访问GPU):
sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker
2. 修改Dockerfile
基于NVIDIA官方的CUDA镜像构建(匹配主机CUDA 11.4、Ubuntu 20.04环境):
# 选择匹配主机环境的NVIDIA CUDA runtime镜像 FROM nvidia/cuda:11.4.3-cudnn8-runtime-ubuntu20.04 # 安装Python3.8及相关工具 RUN apt-get update && apt-get install -y python3.8 python3-pip python3.8-venv RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 # 创建并激活虚拟环境 RUN python3 -m venv /venv ENV PATH="/venv/bin:$PATH" # 升级pip并安装指定版本的PyTorch、Jupyter RUN pip install --upgrade pip RUN pip install torch==1.13.1+cu117 -f https://download.pytorch.org/whl/torch_stable.html RUN pip install notebook EXPOSE 8873 WORKDIR /app COPY . /app CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--port=8873", "--no-browser", "--allow-root"]
3. 构建并启动容器
# 构建镜像 sudo docker build -t myimagenew . # 启动容器,添加GPU访问参数 sudo docker run --gpus all -p 8873:8873 myimagenew
验证
在容器内的Jupyter中运行测试代码,即可得到torch.cuda.is_available() = True的输出。
内容的提问来源于stack exchange,提问作者user3668129
相关产品推荐
相关产品推荐

