前一阵子写了一篇docker的学习笔记[1],但是当时没有gpu,所以没法做显卡调用相关的内容。最近机房的电脑启动了,有了实验环境,打算把docker调用gpu相关的内容测试一下。实验环境依然为Ubuntu16.04。

根据所看到的资料[2]以及docker的release notes[3]显示,19年7月的时候,docker已经在19.03版本中加入了NVIDIA GPU的runtime,所以本篇会针对此进行学习和实验,而不是旧版的nvidia-docker或者nvidia-docker2。

环境安装

首先需要在拥有NVIDIA GPU显卡的机子上安装显卡驱动,使用一些参数会让安装省去许多麻烦

./NVIDIA-Linux-x86_64-440.36.run --no-opengl-files --no-x-check --no-nouveau-check

然后根据docker的官方文档在服务器中安装docker-ce,安装完后默认可以得到最新版的docker,目前是19.03.6

根据nvidia-docker的官方github,还需要安装nvidia-container-toolkit

# Add the package repositories
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.listsudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

测试

我在单卡服务器上测试了官方示例,结果如图

为了能在docker中训练与部署模型,我们需要一个开发环境的镜像。pytorch在DockerHub[4]上传了许多已经制作好的镜像,我们可以用来作为基础镜像

docker pull pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel

映射个测试目录,启动容器

docker run -it --gpus=all -v /home/eagle/project/test:/workspace pytorch/pytorch:1.1.0-cuda10.0-cudnn7.5-devel

在测试目录/home/eagle/project/test下创建一个名为test.py的文件,随便找一份训练代码写进去,在容器中运行python test进行测试

可以看到训练正常,至此测试就可以结束了。

其它

可以看到,docker 19.03之后,调用NVIDIA GPU还是很方便的。不过目前NVIDIA官方暂未支持docker-compose[5],期待后续的完善。

PS:期待WSL2也尽快的支持GPU调用,这样炼丹就会更方便了。

参考

  1. ^Docker学习笔记 - 知乎 https://zhuanlan.zhihu.com/p/105818436
  2. ^K8S 生态周报| 2019-07-21~2019-07-28 - 知乎 https://zhuanlan.zhihu.com/p/75591755
  3. ^Docker Engine release notes | Docker Documentation https://docs.docker.com/engine/release-notes/#19030
  4. ^pytorch/pytorch Tags - Docker Hub https://hub.docker.com/r/pytorch/pytorch/tags
  5. ^Support for NVIDIA GPUs under Docker Compose · Issue #6691 · docker/compose https://github.com/docker/compose/issues/6691

docker用gpu的参数_初探Docker调用GPU相关推荐

  1. docker用gpu的参数_从零开始入门 K8s | GPU 管理和 Device Plugin 工作机制

    导读:2016 年,随着 AlphaGo 的走红和 TensorFlow 项目的异军突起,一场名为 AI 的技术革命迅速从学术圈蔓延到了工业界,所谓 AI 革命从此拉开了帷幕.该热潮的背后推手正是云计 ...

  2. docker配置容器mysql启动参数_修改Docker容器启动配置参数

    有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...

  3. docker 查看容器磁盘大小_软件安全 : Docker逃逸详解

    前言 在虚拟化技术日益成熟的今天,Docker作为必须使用的一项服务,它的安全性尤为重要.今天,我们来一起学习Docker最大的安全威胁--逃逸技术. Docker是什么 Docker 是一个开源的应 ...

  4. jar docker镜像不能启线程_使用docker部署SpringCloud项目

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:现实太狗ochttps://blog.csdn.net/u011508407/ 分类 ...

  5. docker部署python web应用_安装docker并部署web项目

    一.docker简介 1.docker定义:docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以装笔,书包可以放书一样.你可以把"hello world!"放到docke ...

  6. docker容易内部怎么编辑_在Docker的工作流中常见问题及最终方案

    我们用Python代码演示,代码都是共通的大家都要了解下. 这次我们创建一个Hello world的web服务器. 一 mkdir -p identidock/app #首先创建一个新的multiid ...

  7. docker image设置jdk版本_使用Docker搭建Java环境的步骤方法

    Docker是干什么的 Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发,源代码托管在 Github 上, 遵从Apache2.0协议开 ...

  8. docker部署python web应用_使用docker一键部署Web应用

    前几天借着部署一个小系统的机会尝试了一把docker,把Web应用,数据库,nginx统统都用docker管理.把打包好的代码扔到服务器上一键就部署好了,不需要考虑服务器的环境问题,简直不要太爽.但感 ...

  9. docker搭建java测试环境_基于docker构建测试环境

    目录 0x01介绍 0x02 镜像基本操作 0x03 容器基本操作 0x04 容器的修改与保存 0x05 使用Dockerfile定制镜像 0x01介绍 Docker 是一个开源的应用容器引擎,基于 ...

最新文章

  1. 为什么在系统中使用JSON
  2. 链接服务器 慢_redis服务器cpu100%的原因和解决方案
  3. 不是所有人都懂这样做,你若做了就能高升!
  4. mysql数据库密码安全参数_MySQL 密码参数配置与修改 validate_password
  5. Java 学习笔记(9)——java常用类
  6. image 搜索docker_docker images命令-列出image
  7. Python 正则表达式匹配中文
  8. PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点
  9. Python爬虫进阶教程:抖音APP无水印视频批量下载
  10. PHP序列化与反序列化
  11. 7z文件格式及其源码的分析(四)
  12. Dying In The Sun~~逝去于阳光之下
  13. [附源码]Node.js计算机毕业设计高校心理咨询管理系统Express
  14. 虹科Automation softPLC | 虹科KPA MoDK运行环境与搭建步骤(3)——MoDK例程测试
  15. 超级电容与锂电池的比较
  16. 2021年中国工业和商业LED照明市场趋势报告、技术动态创新及2027年市场预测
  17. vs code 如何在服务器打开文件,本地VSCode编辑远程服务器文件
  18. 分析上证综指和恒生指数的相关性和波动性-R
  19. windows2000虚拟主机安全设置
  20. 硬件设计经验-②去耦电容

热门文章

  1. 关于计算机网络维护毕业论文,计算机专业毕业论文---计算机网络故障处理及维护方法...
  2. 合作编写java项目y_基于VS Code快速搭建Java项目
  3. Docker实践(四)Dockerfile
  4. Unity2018新功能抢鲜 | ShaderGraph入门教程
  5. 模式代码 java中aes_深入浅出:Java中的代理模式
  6. 在Blazor中构建数据库应用程序——第1部分——项目结构和框架
  7. 通过数据扩充来扩展数据集
  8. 谷歌开源 Kotlin 版本 gRPC
  9. PyCharm 2019.3 EAP 7 发布,支持 R 语言插件
  10. 通过社交网络进行OWIN OAuth2身份验证