Docker 搭建深度学习环境镜像,一次搭建,无限部署! | 您所在的位置:网站首页 › cuda镜像devel和runtime › Docker 搭建深度学习环境镜像,一次搭建,无限部署! |
文章目录
原创声明前言一、 安装 Nvidia 显卡驱动二、安装 Docker三、Docker Compose四、NVIDIA-Docker五、下载 Nvidia CUDA 镜像六、搭建 Python3 环境附录:1. Docker-compose 例子
总结参考文章:授权须知
原创声明
本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的【授权须知】,感谢您对 HinGwenWoong 文章的认可! 前言 Q: 有什么工具能够让你一次搭建,无限部署?A: 有!Docker可以!我们平常开发的时候,难免会遇到多种不同的环境,有的是底层的驱动,有的是依赖库。依赖库的比较好办,可以使用虚拟环境进行分隔,但是不同的驱动的话,我们就会挺头疼的,这时候,Docker 可以解决这一烦恼。 除了开发,我们还会涉及到项目部署,虽然有运维工程师,但是我们开发工程师还是需要协助进行环境的安装,每一个项目都要重头再来搭建环境,让人极其烦躁,但是不做又不行,一个很好的解决方式就是使用Docker 打包镜像,可以将我们这个搭建环境的过程只需要搭建一次就可以无限部署,节省了我们会多的宝贵时间。 下面就来介绍 Docker 如何搭建深度学习镜像,让你一次搭建,无限部署 我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢! 一、 安装 Nvidia 显卡驱动可以参照我的文章《Ubuntu18.04 安装Nvidia驱动+CUDA+cuDNN+Anaconda3(图文超详细)》 其中的 【一、Nvidia显卡驱动】。 二、安装 Docker可以参考Docker官方的文档,非常清晰,安装 docker不是本章的重点,这里不做过多的阐述。 三、Docker Compose使用 docker compose 将所有的操作集成到 docker-compose.yml 文件中,实现一条简单的命令docker-compose up 启动多个容器,并且可以在容器之间建立网络连接,非常方便,简化了很多操作。 Docker Compose 官方文档使用指令下载对应的安装包,其中,1.27.4是对应的版本号,可以到官方Github release页面查看发布版本,下面是安装指令: sudo curl -L \ "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose 将下载好的二进制文件赋予可执行的权限: sudo chmod +x /usr/local/bin/docker-compose 测试指令: sudo docker-compose --version 成功!![]() 因为 Docker 只能使用 CPU 的资源,我们需要一个由Nvidia 官方开发的插件来连接 Docker 和 宿主机的显卡驱动 —— nvidia-docker ,下面是安装过程: 官方教程 设置稳定版的存储库和GPG密钥: distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list如果你可以顺利执行上诉的指令,恭喜,请移步到本小节的第3步; 如果你出错了,不要怕,因为我执行的时候就出错了!!!!!分别出现两个错误: gpg: 找不到有效的 OpenPGP 数据。:是由curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - 引起的;E: 无法定位软件包 nvidia-docker2:是由curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list引起的;以下是解决方法: 分析过后我发现是因为域名解析出现问题导致的,点击跳转到 ipaddress.com,搜索查找nvidia.github.io,可得到该域名对应的ip地址:将获取到的 IP 填写进去,保存就可以了: 重新打开终端,再来一次就可以成功获取了: distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list因为我自己配置了 docker 的镜像源,这里先填入 Y 将其覆盖掉,之后再另外添加 如果顺利进行,恭喜,请跳到 本小节第12步;如果报错了,放心,我和你一样!让我带你填坑,请继续看; 报错:/sbin/ldconfig.real: /usr/local/cuda-10.2/targets/x86_64-linux/lib/libcudnn.so.7 is not a symbolic link, 去到文件夹 /usr/local/cuda/lib64/ , 使用命令 ls -lha libcudnn* 查看,可以看到 libnudnn.so.7 不是软链接
安装成功!!! 运行测试一下 sudo docker run --rm --gpus all nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04 nvidia-smi更多的镜像如下: Docker中国区官方镜像:https://registry.docker-cn.com 中国科技大学:https://docker.mirrors.ustc.edu.cn 最后的daemon.json是这样的: 去到Nvidia docker cuda 官方镜像 查看所有支持的列表 寻找你需要的 CUDA版本和cuDNN版本,我这里选择了 10.2-cudnn7-devel-ubuntu18.04: 在官方的 Nvidia docker cuda 官方镜像点击 Tags 并根据刚刚选好的名字进行搜索: 将刚刚复制好的命令在终端输入就可以下载到对应的镜像了,我的需要下载镜像的命令是 docker pull nvidia/cuda:10.2-cudnn7-devel-ubuntu18.04: 使用命令 sudo docker images 可以查看到下载好的镜像: 官方教程:Enabling GPU access with Compose 下面是使用 docker-compose 的例子,其中一定要加 runtime: nvidia 这个参数!!! version: '3' services: demo: container_name: cuda-demo image: nvidia/cuda:10.2-devel-ubuntu18.04 # 或者是您自己的镜像 runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICE=all - LANG=C.UTF-8 ports: - "100:100" volumes: - 您项目的绝对路径/:/home/Project/Demo/ command: - /bin/bash - -c - | nvidia-smi cd /home/Project/Demo/ python3 demo.py restart: always 总结以上就是如何使用 docker 搭建深度学习环境镜像,让你一次搭建,无限部署! 我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 👍 ,您的点赞可以让技术传播得更远更广,谢谢! 参考文章:[1]当Docker遇见Deep Learning [2]‘gpg: 找不到有效的 OpenPGP’ & ‘E: 无法定位软件包 nvidia-docker2’ [3]/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.5 is not a symbolic link 授权须知 原创文章在推送一天后才可进行转载转载文章,禁止声明原创不允许直接二次转载,转载请根据原文链接联系作者若无需改版,在文首清楚标注作者及来源/原文链接,并删除【原创声明】,即可直接转载。 但对于未注明转载来源/原文链接的文章,我将保留追述的权利。作者:HinGwenWoong 一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,共同进步! CSDN: HinGwenWoong 原文链接:Docker 搭建深度学习环境镜像,一次搭建,无限部署! 若需要修改文章的排版,请根据原文链接联系作者再次感谢您的认可,转载请遵守如上转载须知! |
CopyRight 2018-2019 实验室设备网 版权所有 |