尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Ubuntu系统下安装docker(GPU版)

Ubuntu系统下安装docker(GPU版) 一、参考资料Repository configurationdocker学习笔记9nvidia-docker安装、部署与使用怎么在docker中使用nvidia显卡docker使用GPU总结二、相关介绍Nvidia安装nvidia-docker官方教程最初的docker是不支持gpu的为了让docker支持nvidia显卡英伟达公司开发了nvidia-docker。该软件是对docker的包装使得容器能够看到并使用宿主机的nvidia显卡。根据网上的资料从docker 19版本之后nvidia-docker成为了过去式。不需要单独去下nvidia-docker这个独立的docker应用程序也就是说gpu docker所需要的Runtime被集成进docker中使用的时候用–gpus参数来控制。如果不添加–gpus参数宿主的gpu将对于容器不可见。# 指定所有的gpu--gpusall# 指定1,2号gpu--gpus1,2# 使用所有GPUdockerrun--gpusall nvidia/cuda:10.0-base nvidia-smi# 使用两个GPUdockerrun--gpus2nvidia/cuda:10.0-base nvidia-smi# 指定GPU运行dockerrun--gpusdevice1,2nvidia/cuda:10.0-base nvidia-smidockerrun--gpusdeviceUUID-ABCDEF,1nvidia/cuda:10.0-base nvidia-smi三、系统环境要求# CUDA版本/显卡驱动/系统版本对齐请参考 [Nvidia官网](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#abstract) 1. GNU/Linux x86_64 with kernel version 3.10 2. Docker 19.03 (recommended, but some distributions may include older versions of Docker. The minimum supported version is 1.12) 3. NVIDIA GPU with Architecture Kepler (or compute capability 3.0) 4. NVIDIA Linux drivers 418.81.07 (Note that older driver releases or branches are unsupported.)四、具体步骤# 安装指定版本的依赖包一定要安装否则会报错sudoaptinstalllibnvidia-container11.4.0-1 libnvidia-container-tools1.4.0-1 nvidia-container-toolkit1.5.1-1# 安装最新的依赖包一定要安装否则会报错sudoaptinstalllibnvidia-container1 libnvidia-container-tools nvidia-container-toolkit# 用Docker官方脚本安装Docker-CEcurlhttps://get.docker.com|sh\sudosystemctl--nowenabledocker# 添加稳定仓库和GPG密钥distribution$(./etc/os-release;echo$ID$VERSION_ID)\curl-s-Lhttps://nvidia.github.io/nvidia-docker/gpgkey|sudoapt-keyadd-\curl-s-Lhttps://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list|sudotee/etc/apt/sources.list.d/nvidia-docker.list# 更新源sudoapt-getupdate# nvidia-docker2sudoapt-getinstall-ynvidia-docker2# 重启docker服务sudosystemctl restartdocker# 查看–gpus 参数是否安装成功dockerrun--help|grep-igpus# 1. 运行一个基于CUDA的容器sudodockerrun--rm--gpusall nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04 nvidia-smi# 2. 运行一个基于CUDA的容器sudodockerrun--rm--gpusall nvidia/cuda:10.0-base nvidia-smi# 3. 运行一个基于CUDA的容器dockerrun--gpusall--rm-itnvidia/cuda:10.0-base /bin/bash nvidia-smi# 4. 运行一个基于CUDA的容器, nvidia-dockernvidia-container-toolkit的安装方式dockerrun--gpusall--rmnvidia/cuda:10.0-base nvidia-smi# 5. 运行一个基于CUDA的容器, nvidia-docker2的方式dockerrun--runtimenvidia-eNVIDIA_VISIBLE_DEVICESall--rmnvidia/cuda:10.0-base nvidia-smi or nvidia-docker run-eNVIDIA_VISIBLE_DEVICESall--rmnvidia/cuda:10.0-base nvidia-smi# 6. 运行一个基于CUDA的容器dockerrun-itd--gpusall--name容器名-eNVIDIA_DRIVER_CAPABILITIEScompute,utility-eNVIDIA_VISIBLE_DEVICESall 镜像名 参数解释NVIDIA_DRIVER_CAPABILITIEScompute,utility 加上compute宿主机的英伟达driver将对容器提供计算支持所谓的计算支持也就是cuda支持五、Docker安装tensorflow-gpu参考资料Docker安装tensorflow-gpu启动 TensorFlow Docker 容器六、可能出现的问题cuda错误docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: signal: segmentation fault (core dumped), stdout: , stderr:: unknown.错误原因 参考资料 [signal: segmentation fault (core dumped), stdout: , stderr:: unknown. When install the docker nvidia](https://github.com/NVIDIA/nvidia-docker/issues/1536) [New Docker CLI API Support for NVIDIA GPUs under Docker Engine 19.03.0 Pre-Release](https://collabnix.com/introducing-new-docker-cli-api-support-for-nvidia-gpus-under-docker-engine-19-03-0-beta-release/) 1. 未安装 nvidia-container-* 相关依赖包 2. docker未重新启动 解决办法 # 1. 安装相关依赖包一定要安装否则会报错 sudo apt install libnvidia-container11.4.0-1 libnvidia-container-tools1.4.0-1 nvidia-container-toolkit1.5.1-1 # 2. 重新启动docker sudo systemctl daemon-reload sudo systemctl restart dockersource.list重复W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次错误原因 sources.list中的记录重复 解决办法 将sources.list的第1行和第3行注释掉
返回列表