利用docker部署深度学习环境摆脱操作系统版本限制与cuda版本限制

文章讲述了在遇到Tensorflow1.13需要CUDA10.2,但Ubuntu22.04不支持的矛盾时,如何利用Docker进行离线部署。首先,从Ubuntu18.04镜像创建容器,然后在宿主机上安装GCC和NVIDIA驱动,接着安装Docker和nvidiadocker。在容器内部,更换镜像源,安装与宿主机相同版本的NVIDIA驱动和CUDA,避免在线安装。最后,安装项目所需的cudnn,从而在容器内构建一个能访问宿主机GPU的深度学习环境。
摘要由CSDN通过智能技术生成

利用docker部署深度学习环境摆脱操作系统版本限制与cuda版本限制


文章背景描述:
近期公司想给客户部署OCR文本识别项目,项目用到了tensorflow1.13,可支持该框架版本的cuda得低于10.2,但是客户要求的操作系统版本是Ubuntu22.04,NVIDIA官方不提供针对于Ubuntu22.04的cuda10.2,出现这种限制真的非常恶心,并且全程要求进行 离线部署
针对此问题考虑到使用docker进行部署

大体思路如下:
1、客户安装操作系统是Ubuntu22.04,利用docker拉取Ubuntu18.04精简版镜像
2、离线下载是宿主机适配的NVIDIA驱动离线包、docker离线包、nvidia docker离线包、gcc离线包(也可以使用联网安装)、项目所需要的对应版本的cuda安装包、cudnn安装包

步骤一:
1、在宿主机安装gcc包,完毕后查看版本,验证是否安装成功
2、在宿主机安装了gcc包的前提下,安装NVIDIA驱动(不安装gcc会安装报错)
步骤二:
1、安装docker
2、安装nvidia docker,验证是否安装成功
3、拉取Ubuntu18.04官方镜像,创建容器,在创建容器时,需要传入相应的参数,以下为例:

docker run -it -d --gpus all -p 8081:8080  --name googosoft_ocr -v /home/googosoft/docker_file:/home/googosoft/docker_file 3941d3b032a8 /bin/bash

在这里插入图片描述

上述语句中,必须加上**–gpus参数,否则容器无法调用宿主机的GPU**
4、进入到创建的容器内,必须再次安装gcc,否在以下步骤会报错
安装过程中如果报错,可能是镜像源问题建议更换网易镜像源

apt install build-essential
gcc --version

镜像源:注意,我的Ubuntu是18.04版本,各个版本的镜像源不相同,需要根本实际查询修改
主要是一下连接中"bionic "参数位置需要调整,建议查询下

deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

5、在容器内安装与宿主机相同版本的nvidia驱动
在这里插入图片描述
5、安装项目所需要的cuda(在安装过程中不要安装程序提示需要安装的英伟达驱动,选择no)与cudnn该步骤与常规流程一样
之后的流程基本与常规流程一样,可以没有束缚的放纵自己玩耍了

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于部署深度学习项目,Docker 是一个非常有用的工具。以下是一些步骤来使用 Docker 部署深度学习项目: 1. 安装 Docker:首先,你需要在你的机器上安装 Docker。你可以在 Docker 官方网站上找到适合你操作系统的安装包,并按照说明进行安装。 2. 构建 Docker 镜像:接下来,你需要创建一个 Docker 镜像,其中包含你的深度学习项目所需的所有依赖项。为此,你可以编写一个 Dockerfile,其中包含安装所需的软件包、库和环境设置。然后,在终端中使用 `docker build` 命令来构建镜像。例如: ``` docker build -t my_dl_project . ``` 3. 运行 Docker 容器:一旦你构建了 Docker 镜像,你可以使用 `docker run` 命令来创建并运行一个容器。在运行容器时,你可以指定要映射的端口和要挂载的目录等选项。例如: ``` docker run -p 8888:8888 -v /path/to/your/project:/app my_dl_project ``` 这将创建一个容器,并将宿主机的端口 8888 映射到容器的端口 8888,并将宿主机上的 `/path/to/your/project` 目录挂载到容器内的 `/app` 目录。 4. 访问项目:一旦容器正在运行,你可以通过在浏览器中输入 `localhost:8888` 来访问项目。如果你在 Dockerfile 中安装了 Jupyter Notebook 或类似的工具,你可以在容器中运行它,并通过浏览器访问。 这些是使用 Docker 部署深度学习项目的基本步骤。当然,具体的步骤可能因项目的要求而有所不同。在实际部署过程中,你可能还需要考虑其他因素,如 GPU 加速和容器的规模管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值