Docker容器内CUDA 9.0升级10.0及切换bash问题咨询
Docker运行second.pytorch仓库问题解答
问题1:容器内CUDA版本升级相关
你的宿主机Tesla T4搭配470.129.06版本驱动完全兼容CUDA 10.0(CUDA 10.0要求最低驱动版本为410.48,版本要求满足),但不建议直接在运行中的容器内升级CUDA,直接升级会出现动态链接库冲突、环境变量混乱、原有依赖失效的问题,正确操作是基于原有镜像重新构建适配CUDA10.0的新镜像,步骤如下:
- 拉取匹配原镜像系统版本的CUDA10.0官方基础镜像,原scrin/second-pytorch镜像基于Ubuntu16.04构建,对应选择
nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04作为新的基础层 - 参考原镜像的构建逻辑,把second.pytorch运行需要的系统依赖、Python环境、代码编译逻辑迁移到新的Dockerfile中,把所有写死的CUDA9.0路径(比如
/usr/local/cuda-9.0)替换为CUDA10.0对应路径,同步更新CUDA_HOME、LD_LIBRARY_PATH相关环境变量 - 在Dockerfile所在目录执行构建命令生成新镜像:
docker build -t second-pytorch:cuda10 .,后续启动容器直接使用这个新镜像即可
问题2:启动容器进入bash环境相关
报错原因是该镜像默认把fish设置为了入口启动程序,你在命令末尾追加的bash会被作为参数传递给fish,fish无法识别该参数就会抛出open: No such file or directory错误,可通过两种方式进入bash:
- 启动时直接覆盖默认入口,执行命令如下:
nvidia-docker run -it --rm -v /Path_to_dataset:/root/data -v $Path_to_model:/root/model --ipc=host --entrypoint /bin/bash scrin/second-pytorch
- 如果已经通过原命令进入fish交互界面,直接在终端输入
/bin/bash回车即可切换到bash环境,输入exit可退回fish。
内容的提问来源于stack exchange,提问作者Hetali
相关产品推荐
相关产品推荐

