解决 Ubuntu18.10 无法安装 Nvidia-docker2

2023-11-02

2023年5月18日更新
nvidia 原 github.io 网页已废弃,更新了新的主页链接

2022年8月10日更新
很高兴看到这篇文章能够帮助一些同仁,在此更新一下

根据 https://nvidia.github.io/nvidia-docker/
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#installation-guide

Docker2 目前来看安装命令仅支持Ubuntu 16.04 Ubuntu 18.04 Ubuntu 19.04 Ubuntu 19.10 Ubuntu19.10 Ubuntu 20.04 ubuntu20.04 Ubuntu 22.04

如果你的系统不是以上版本,理论上都可以使用本文的方法解决


根据 Nvidia-docker2 官方安装指南:
https://nvidia.github.io/nvidia-docker/
https://github.com/NVIDIA/nvidia-docker/
安装命令:

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
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 -y nvidia-docker

# Add the package repositories
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

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

一. 问题简述

经过我的测试, Ubuntu18.10直接使用以上命令无法安装nvidia-docker2的
会提示

# Unsupported distribution!
# Check https://nvidia.github.io/nvidia-docker

原因在于distribution=$(. /etc/os-release;echo $ID$VERSION_ID)会获取当前系统的release版本然后构建地址从nvidia的仓库中获取源

而nvidia的仓库中没有
https://nvidia.github.io/nvidia-docker/ubuntu18.10/nvidia-docker.list

二. 获得源列表

所以, 可将distribution手动指定为ubuntu18.04(Debian10 对应改为 debian9)(注意这里首字母小写,字母和数字之间没有空格)

具体系统修改可以参照
https://nvidia.github.io/nvidia-docker/
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#installation-guide
中的表格,改成比目前系统版本低一点的 Identifier 就可以

修改后的命令如下:

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
distribution="ubuntu18.04"
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

到这一步应该都不会报错了, 继续进行下一步安装:

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2

到这一步应该会显示
在这里插入图片描述
出现这个错误的原因是我们系统中安装的是18.10版本的docker, 但是nvidia-docker2依赖的是bionic版本的docker.

三. 重新安装 Docker

1.修改 docker.list

sudo nano /etc/apt/sources.list.d/docker.list

将内容改为下图后保存退出
在这里插入图片描述
2. 安装docker

sudo apt update 
sudo apt install -y docker-ce nvidia-docker2

四. 启动容器

sudo pkill -SIGHUP dockerd

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

如果一切顺利, 你会看到下图:
在这里插入图片描述
enjoy!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决 Ubuntu18.10 无法安装 Nvidia-docker2 的相关文章

随机推荐

  • Kubernetes基础2

    二进制部署kubenetes 1 环境介绍 角色 主机名 IP 备注 k8s master1 kubeadm master1 haostack com 172 16 62 201 k8s master2 kubeadm master2 ha
  • unity UGUI之Button按钮多种触发方式实现(有参无参函数)

    UGUI之Button按钮有多种触发方式 下面讲两种 第一种方法是在依靠属性面板绑定物体然后找到物体脚本上的方法触发 第二种是用纯代码的方式是用onClick方法 第一种 首先建立一个button 之后看button属性 如图右下角 那里的
  • 【DL】第 4 章:目标检测和图像分割

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 【HBZ分享】Redis的缓存雪崩+穿透+击穿如何解决

    缓存雪崩 现象 大量热点key设置了相同过期时间 导致同时过期 或 Redis宕机 使请求瞬间大量打到DB上 解决方案 1 搭建高可用集群环境 防止某台Redis服务宕机 2 存数据的过期时间设置随机数 防止同一时间大量数据过期 3 设置k
  • cmd命令查询硬盘序列号,磁盘ID,MAC地址

    查询单位计算机基础信息 需要查询 硬盘序列号 磁盘ID MAC地址等计算机相关信息 不需要专业的软件如AIDA 用cmd命令行就可以实现这些信息的查询 之前就经常把硬盘序列号和磁盘ID搞混乱 win r 输入cmd 打开cmd命令 1 硬盘
  • ABAP 访问REST服务设置Auth2的Token

    DATA json ser TYPE REF TO cl trex json serializer json des TYPE REF TO cl trex json deserializer DATA lv url TYPE string
  • Latex 希腊字母大写

    大写 小写 LaTeX 大写 大写 LaTeX A A quad alpha A A alpha N
  • 程序访问的局部性原理

    程序访问的局部性原理 程序访问的局部性原理包括时间局部性和空间局部性 时间局部性是指在最近的未来要用到的信息 很可能是现在正在使用的信息 因为程序中存在循环 空间局部性是指在最近的未来要用到的信息 很可能与现在正在使用的信息在存储空间上是连
  • OD华为机试 32

    组成最大数 描述 小组中每位都有一张卡片 卡片上是6位内的正整数 将卡片连起来可以组成多种数字 计算组成的最大数字 输入描述 号分割的多个正整数字符串 不需要考虑非数字异常情况 小组最多25个人 输出描述 最大的数字字符串 示例一 输入 2
  • elk 笔记15--mapping

    elk 笔记15 mapping 1 mapping 简介 1 1 什么是mapping 1 2 为何移除多type 2 mapping 数据类型 3 mapping 元字段 4 mapping 参数 5 动态 mapping 6 常见 m
  • 3.Unity Shader 基础

    目录 一对好兄弟 材质和Unity Shader Unity中shader ShaerLab Unity Shader 的结构 1 创建 2 Properties 3 SubShader 状态设置 RenderSetup SubShader
  • hive永久注册udf函数小例子

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 1217 注册UDF函数 1 helloUDF java中package信息需要修改 代码如下 package com maven udf p
  • ChatGLM2_6b安装

    Chatglm2 6b安装 一 安装要求 1 硬件 能否使用 或者以什么模式使用主要取决于显卡的显存 2 能否使用AMD显卡 可以 甚至可以使用CPU 但是需要降低精度 以CPU模式运行大概需要32GB 内存 二 工程与下载 官方路径 工程
  • 遇到问题之-yum update无法连接镜像问题解决

    yumupdate出现无法解析的错误 查看yum源设置也正确 然后查看本机DNS无法解析 通过防火墙开放DNS端口解决 然后还是无法yum安装 查看另外一台服务器和故障机配置都相同 但是yum正常 发现两者不同的是load的mirror是不
  • 物联网mqtt消息格式定义示例

    物联网mqtt消息格式定义示例 物联网mqtt通信流程 消息定义 应用下发到云 POST https 云服务器ip iot product id device id cmd Content Type application json X A
  • Spring MVC应用的开发步骤

    Spring MVC应用的开发步骤 Spring MVC应用的开发步骤 如果以异步方式提交请求 利用XML配置文件 配置控制器类 Spring MVC应用的开发步骤 下面简单介绍Spring MVC应用的开发步骤 在web xml文件中配置
  • Frida hook Java层

    往期推荐 frida环境安装 Xposed框架安装 使用及插件开发 HOOK startActivity HOOK框架 动态代理 需要相关资料的朋友 可以 加入此处即可打包获取 需要对在进程外传递的消息进行拦截处理就必须采取一种称为HOOK
  • Hexo博客开发之——七牛云图片批量下载

    一 前言 基于hexo Github搭建的静态博客 图片等资源的存储是一个问题 之前考虑过图片保存本地文件夹 图床 qiniu 微博 等 但是七牛存储的图片会有一些问题 使得我不得不考虑领寻图片等资源的存储问题 1 1 七牛图片存储的问题
  • UE4 加载流关卡(StreamingLevel)

    主要内容 本文主要讲解流关卡的加载卸载以及使用流关卡的好处 使用流关卡的好处在于利于多人协同合作 例如使用SVN进行项目开发时 各自上传或修改各自负责的关卡可以互不干扰 实现步骤 1 新建一个默认的主关卡和两个空的关卡 2 在主关卡里把两个
  • 解决 Ubuntu18.10 无法安装 Nvidia-docker2

    2023年5月18日更新 nvidia 原 github io 网页已废弃 更新了新的主页链接 2022年8月10日更新 很高兴看到这篇文章能够帮助一些同仁 在此更新一下 根据 https nvidia github io nvidia d