Nvidia Docker使用快速入门

Docker使用GPU简介

在Docker中使用GPU是机器学习的常用场景,其中Nvidia GPU最常见。

在Docker中使用GPU CUDA的便捷之处是,其Ubuntu主机只要安装Nvidia GPU的驱动,而各个Docker容器根据使用的深度学习的框架版本如TensorFlow,安装各自不同的CUDA Toolkit版本,从而不相互冲突。

本文简述在Ubuntu 18.04中,配置过程以及容器内的一些权限配置。

Nvidia Docker的安装

Nvidia Docker的官网为:
   https://github.com/NVIDIA/nvidia-docker

安装流程如下:

  1. Ubuntu 18.04宿主机安装 Nvidia驱动,https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#how-do-i-install-the-nvidia-driver
  2. Ubuntu 18.04宿主机安装 Docker 19.03 (这是2019年要求的版本,Docker社区版即可)
  3. 安装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.list

$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker

如何使用Nvidia Docker

在正常使用Docker命令后加--gpu参数即可,如:

docker run --gpus all tensorflow/tensorflow:1.15-gpu-py36 python

Docker容器内使用非root用户

Docker容器内默认是root用户,这样会使容器内创建的文件(使用-v映射卷时)也是root用户,从而使用宿主机访问这些文件成问题。

使用如下命令达到两个目的:

  • Docker容器内添加用户ubuntu,并生成/home/ubuntu用户的home目录。
  • 授权ubuntu使用sudo权限,不然无法使用pip、apt等安装软件。
useradd ubuntu && echo "ubuntu:ubuntu" | chpasswd && adduser ubuntu sudo

这样启动时就默认使用ubuntu用户了。

非root用户操作Docker

默认情况下,在宿主机需要使用root权限来操作docker的,如:

sudo docker ps

原因是,Docker守护程序绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字是由root用户拥有的,其他用户只能使用sudo访问它。 Docker守护程序始终以root用户身份运行。

如果不想以sudo作为docker命令的开头,创建一个名为docker的Unix group并将用户添加到其中。 Docker守护程序启动时,它将创建一个可由Docker group成员访问的Unix套接字:

sudo groupadd docker
sudo usermod -aG docker $USER

登出账号重新登录即可生效,或使用如下更便捷的方式使上述更新生效。

newgrp docker

Docker一些常用操作

docker常用参数:

  • -it。交互式运行
  • -v <宿主机目录>:<容器内目录>。映射宿主机的卷给容器读写
  • -p <宿主机端口>:<容器内端口>。映射宿主机的端口给容器
  • --rm。运行完容器退出后直接删除

docker常用操作:

  • docker commit <容器id> <镜像名>。将容器保存为镜像。
(0)

相关推荐

  • 怎么使用Win8快速入门指导

    Win8客户预览发布啦,全新的操作会不会令你无所适从?如何快速入门玩转Windows8?Windows8快速使用指南中文版助你一臂。 Win8装好以后面对全新的Metro界面如何操作?没有触摸屏,只有 ...

  • 如何用Visio2007创建基本框图快速入门的详细步骤

    微软Visio2007为我们提供大量的模板以及无数的形状,这其中一些显得比较简单,但是另外的一些却又相对比较复杂,让人无可适从.本文主要就是为大家介绍如何用Visio2007创建基本框图以便你能够快速 ...

  • InDraw怎么用?InDraw(Integle ChemDraw)快速入门教程

    InDraw全称Integle ChemDraw作为integle核心工具之一,专为化学.医药科学家提供完整易用的绘图解决方案,不仅能够快速绘制化学结构及反应式,而且可以获得相应的化学属性数据.系统命 ...

  • photoshop快速入门

    如果掌握关键的几步,快速入门phtoshop处理图片 操作方法 01 多余的说教只会损伤大脑细胞,也是对观众智商的侮辱,所以入门一个软件的使用抓住关键步骤很重要. 首先我们打开一张图片,主要掌握的是三 ...

  • solidworks初学者快速入门

    solidworks是一款强大的计算机辅助三维设计软件,功能强大,但操作却很简单.对于初学者而言,这里较你快速入门. 操作方法 01 打开solidworks,新建零件图,首先,你需要明白,任何草图的 ...

  • 【手持云台教学】大疆灵眸Osmo快速入门

    在运动中捕捉清晰.稳定的影像,摆脱模糊的画面.歪斜的构图和杂乱无章的摇晃镜头.以前使用专业设备才能获得的流畅视觉效果,现在触手可得.灵眸Osmo是一台小巧智能的一体化手持云台相机,不仅能轻松拍摄高品质 ...

  • 如何快速入门氚云管理员基础操作

    氚云是基于云计算的企业应用平台,有多种多样的企业应用模板.开通氚云后,作为管理员如何快速上手基本操作呢?下面我将按照操作顺序讲解如何如何快速入门氚云管理员基础操作. 步骤一:同步组织机构 01 应用安 ...

  • 智能游戏手柄如何快速入门指南

    智能游戏手柄如何快速入门指南 操作方法 01 我们新买的游戏手柄,首次使用前,就要了解手柄的按键,HOME键:可以启动和关闭手柄,连接上安卓或苹果设备,短按返回主界面,i键:按下调出新游手柄助手,其它 ...

  • pr基础剪辑操作快速入门方法

    Pr是一款多功能软件,在视频编辑等方面都有很大的作用,现在有很多朋友都在使用这个软件,但是还是有一些新手对这个软件不是特别熟悉,今天的这篇就和大家聊一聊关于 pr基础剪辑操作快速入门方法的问题,希望可 ...

  • cad基础快速入门教程

    cad不管在工作还是学习中,经常会用到,这里小生说一下cad的快速入门方法,操作类的软件其实都是非常简单的,都是一个熟能生巧的过程.这里使用的是高版本的,因为高版本软件越来越简单. 操作方法 01 如 ...