Docker运行TensorFlow GPU版本报错:libcublas.so.9.0文件缺失
解决TensorFlow Docker容器启动时
libcublas.so.9.0找不到的问题 这个问题我碰到过好多次了,本质就是你的TensorFlow容器找不到CUDA 9.0的核心库libcublas.so.9.0,大概率是TensorFlow版本与CUDA版本不匹配,或者GPU容器的配置没到位,给你几个靠谱的解决办法:
1. 优先用官方预构建的TensorFlow-GPU镜像
官方的TensorFlow Docker镜像已经把对应版本的CUDA、cuDNN和所有依赖库打包好了,完全不用自己手动折腾配置。
比如你的错误提示需要CUDA 9.0,对应的TensorFlow版本一般是1.12.x系列,直接用这个命令启动容器:
docker run -it --gpus all tensorflow/tensorflow:1.12.0-gpu
⚠️ 注意:TensorFlow和CUDA版本是严格绑定的,比如TF 1.13.x对应CUDA 10.0,TF 2.0+对应CUDA 10.0及以上,一定要选对镜像标签。
2. 检查宿主机的GPU驱动版本
宿主机的GPU驱动版本必须能支持容器里的CUDA版本,比如CUDA 9.0要求驱动版本至少是384.xx以上。
用这个命令检查当前驱动版本:
nvidia-smi
如果驱动版本低于要求,直接升级到对应CUDA版本的最低驱动就行。
3. 确认nvidia-docker runtime配置正确
普通Docker命令没法直接访问GPU,必须用NVIDIA的Docker runtime(也就是以前的nvidia-docker)。
先跑个测试命令验证配置:
docker run --rm --gpus all nvidia/cuda:9.0-base nvidia-smi
如果这个命令能正常显示你的GPU信息,说明配置没问题;如果报错,就得重新安装nvidia-docker runtime了。
4. 手动给自定义镜像添加CUDA 9.0(不推荐,除非特殊需求)
如果你一定要用自己的基础镜像,那得在Dockerfile里手动安装CUDA 9.0的依赖,比如:
FROM your-custom-base-image # 安装CUDA 9.0核心库 RUN apt-get update && apt-get install -y --no-install-recommends \ cuda-cublas-9-0 \ cuda-cudart-9-0 \ && rm -rf /var/lib/apt/lists/* # 设置库路径环境变量 ENV LD_LIBRARY_PATH /usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
最后提个醒
- 永远不要混用不匹配的TensorFlow和CUDA版本,不然各种依赖问题会找上门;
- 启动容器时一定要加
--gpus all(或者指定具体GPU,比如--gpus device=0),不然容器根本访问不到宿主机的GPU。
内容的提问来源于stack exchange,提问作者Magick
相关产品推荐
相关产品推荐

