nvidia-docker学习笔记

docker一般都是使用基于CPU的应用,而如果是GPU的话,就需要安装特有的硬件环境,比如需要安装nvidia driver。

nvidia-docker是一个可以使用GPU的docker,nvidia-docker是在docker上做了一层封装,通过nvidia-docker-plugin,然后调用到docker上,其最终实现的还是在docker的启动命令上携带一些必要的参数。因此在安装nvidia-docker之前,还是需要安装docker的。

安装

1、首先安装docker
不再赘述,可参考以下链接,也可以自行百度或谷歌
Ubuntu Docker 安装
2、安装nvidia-docker

(1)若安装过nvidia-docker 1.0,首先需要卸载:

docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge nvidia-docker

(2)添加第三方库以及更新软件

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
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

(3)安装nvidia-docker 2.0

sudo apt-get install nvidia-docker2
sudo pkill -SIGHUP dockerd

(4)检测是否成功

sudo docker run --runtime=nvidia nvidia/cuda:9.0-devel nvcc --version

如果安装成功,会显示cuda的版本信息:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

nvidia-docker1.0和2.0之间的区别:
1.0使用 nvidia-docker 命令启动docker服务,如nvidia-docker run -itd …
2.0使用 docker run --runtime-nvidia 启动docker服务

参考:Docker的CUDA环境配置以及各种深度学习框架的安装及创建镜像

使用

可自己写dockerfile,更简便的方法是直接拉取官方镜像

Nvidia提供的cuda镜像,包括cuda和cudnn

pyTorch官方提供的镜像

tensorflow官方docker使用教程

github上大神提供的镜像

在拉取cuda镜像时,镜像与本机cuda版本可以不一致,但显卡驱动一定要满足cuda版本
参考官方github的回答

sudo docker run --runtime=nvidia --rm -it nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04

进入docker后,检查是否配置成功的方法:
(1)nvidia-smi查看gpu信息
(2)cat /usr/local/cuda/version.txt 查看cuda版本
(3)cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 查看cudnn版本

参考:
docker初认知(二)安装nvidia-docker并build cuda+pytorch的image
nvidia-dokcer常见问题总汇

可能出现的问题

1、docker: Error response from daemon: Unknown runtime specified nvidia
参考:https://github.com/NVIDIA/nvidia-docker/issues/838

解决方案1:
restart daemon

sudo systemctl daemon-reload
sudo systemctl restart docker

但对我来说不管用…

解决方案2:
将–runtime=nvidia换成–gpus=all

sudo docker run --gpus=all --rm nvidia/cuda nvidia-smi

解决方案3:
据说是因为没有注册,这个需要自行验证

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nvidia-docker是一个可以在docker中使用GPU的工具。它通过在docker上做了一层封装,并调用nvidia-docker-plugin来实现在docker中使用GPU的功能。在安装nvidia-docker之前,需要先安装docker。安装nvidia-docker的步骤如下: 1. 安装docker:使用以下命令安装docker: ``` sudo apt-get install docker ``` 2. 安装NVIDIA驱动:访问NVIDIA驱动官网,下载并安装适合你的显卡的驱动。安装完成后,可以使用以下命令检查是否安装成功: ``` nvidia-smi ``` 3. 安装nvidia-docker:使用以下命令安装nvidia-docker: ``` 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-docker2 sudo systemctl restart docker ``` 4. 重启docker:使用以下命令重启docker: ``` sudo systemctl restart docker ``` 安装完成后,你就可以使用nvidia-docker来在docker中使用GPU了。 #### 引用[.reference_title] - *1* *3* [安装使用NVIDIA-Docker——可使用GPUDocker容器](https://blog.csdn.net/m0_67390379/article/details/124477868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [深度学习docker环境配置之nvidia-docker安装使用](https://blog.csdn.net/qq_41776453/article/details/129794608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值