Ubuntu系统下安装docker(GPU版)
一、参考资料Repository configurationdocker学习笔记9nvidia-docker安装、部署与使用怎么在docker中使用nvidia显卡docker使用GPU总结二、相关介绍Nvidia安装nvidia-docker官方教程最初的docker是不支持gpu的为了让docker支持nvidia显卡英伟达公司开发了nvidia-docker。该软件是对docker的包装使得容器能够看到并使用宿主机的nvidia显卡。根据网上的资料从docker 19版本之后nvidia-docker成为了过去式。不需要单独去下nvidia-docker这个独立的docker应用程序也就是说gpu docker所需要的Runtime被集成进docker中使用的时候用–gpus参数来控制。如果不添加–gpus参数宿主的gpu将对于容器不可见。# 指定所有的gpu--gpusall# 指定1,2号gpu--gpus1,2# 使用所有GPUdockerrun--gpusall nvidia/cuda:10.0-base nvidia-smi# 使用两个GPUdockerrun--gpus2nvidia/cuda:10.0-base nvidia-smi# 指定GPU运行dockerrun--gpusdevice1,2nvidia/cuda:10.0-base nvidia-smidockerrun--gpusdeviceUUID-ABCDEF,1nvidia/cuda:10.0-base nvidia-smi三、系统环境要求# CUDA版本/显卡驱动/系统版本对齐请参考 [Nvidia官网](https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#abstract) 1. GNU/Linux x86_64 with kernel version 3.10 2. Docker 19.03 (recommended, but some distributions may include older versions of Docker. The minimum supported version is 1.12) 3. NVIDIA GPU with Architecture Kepler (or compute capability 3.0) 4. NVIDIA Linux drivers 418.81.07 (Note that older driver releases or branches are unsupported.)四、具体步骤# 安装指定版本的依赖包一定要安装否则会报错sudoaptinstalllibnvidia-container11.4.0-1 libnvidia-container-tools1.4.0-1 nvidia-container-toolkit1.5.1-1# 安装最新的依赖包一定要安装否则会报错sudoaptinstalllibnvidia-container1 libnvidia-container-tools nvidia-container-toolkit# 用Docker官方脚本安装Docker-CEcurlhttps://get.docker.com|sh\sudosystemctl--nowenabledocker# 添加稳定仓库和GPG密钥distribution$(./etc/os-release;echo$ID$VERSION_ID)\curl-s-Lhttps://nvidia.github.io/nvidia-docker/gpgkey|sudoapt-keyadd-\curl-s-Lhttps://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list|sudotee/etc/apt/sources.list.d/nvidia-docker.list# 更新源sudoapt-getupdate# nvidia-docker2sudoapt-getinstall-ynvidia-docker2# 重启docker服务sudosystemctl restartdocker# 查看–gpus 参数是否安装成功dockerrun--help|grep-igpus# 1. 运行一个基于CUDA的容器sudodockerrun--rm--gpusall nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04 nvidia-smi# 2. 运行一个基于CUDA的容器sudodockerrun--rm--gpusall nvidia/cuda:10.0-base nvidia-smi# 3. 运行一个基于CUDA的容器dockerrun--gpusall--rm-itnvidia/cuda:10.0-base /bin/bash nvidia-smi# 4. 运行一个基于CUDA的容器, nvidia-dockernvidia-container-toolkit的安装方式dockerrun--gpusall--rmnvidia/cuda:10.0-base nvidia-smi# 5. 运行一个基于CUDA的容器, nvidia-docker2的方式dockerrun--runtimenvidia-eNVIDIA_VISIBLE_DEVICESall--rmnvidia/cuda:10.0-base nvidia-smi or nvidia-docker run-eNVIDIA_VISIBLE_DEVICESall--rmnvidia/cuda:10.0-base nvidia-smi# 6. 运行一个基于CUDA的容器dockerrun-itd--gpusall--name容器名-eNVIDIA_DRIVER_CAPABILITIEScompute,utility-eNVIDIA_VISIBLE_DEVICESall 镜像名 参数解释NVIDIA_DRIVER_CAPABILITIEScompute,utility 加上compute宿主机的英伟达driver将对容器提供计算支持所谓的计算支持也就是cuda支持五、Docker安装tensorflow-gpu参考资料Docker安装tensorflow-gpu启动 TensorFlow Docker 容器六、可能出现的问题cuda错误docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: Running hook #0:: error running hook: signal: segmentation fault (core dumped), stdout: , stderr:: unknown.错误原因 参考资料 [signal: segmentation fault (core dumped), stdout: , stderr:: unknown. When install the docker nvidia](https://github.com/NVIDIA/nvidia-docker/issues/1536) [New Docker CLI API Support for NVIDIA GPUs under Docker Engine 19.03.0 Pre-Release](https://collabnix.com/introducing-new-docker-cli-api-support-for-nvidia-gpus-under-docker-engine-19-03-0-beta-release/) 1. 未安装 nvidia-container-* 相关依赖包 2. docker未重新启动 解决办法 # 1. 安装相关依赖包一定要安装否则会报错 sudo apt install libnvidia-container11.4.0-1 libnvidia-container-tools1.4.0-1 nvidia-container-toolkit1.5.1-1 # 2. 重新启动docker sudo systemctl daemon-reload sudo systemctl restart dockersource.list重复W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:1 和 /etc/apt/sources.list.d/nvidia-docker.list:1 中被配置了多次 W: 目标 Packages (Packages) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh_CN) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (zh) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次 W: 目标 Translations (en) 在 /etc/apt/sources.list.d/nvidia-container-runtime.list:3 和 /etc/apt/sources.list.d/nvidia-docker.list:3 中被配置了多次错误原因 sources.list中的记录重复 解决办法 将sources.list的第1行和第3行注释掉

相关新闻

RocksDB 开源嵌入式键值存储库深度解析:从 LSM-Tree 到生产级实践

RocksDB 开源嵌入式键值存储库深度解析:从 LSM-Tree 到生产级实践

RocksDB 是 Facebook(Meta)开源的、用 C 写的高性能嵌入式键值存储引擎。它像一个"超级加速版的文件柜"——你往里塞键值对,它能以极快的速度读写,并且把数据安全地落到磁盘上。1. RocksDB 是什么?&#xff…

2026/10/19 8:10:09 阅读更多 →
Jellyfin字幕管理架构解析与多语言字幕自动下载实现原理

Jellyfin字幕管理架构解析与多语言字幕自动下载实现原理

Jellyfin字幕管理架构解析与多语言字幕自动下载实现原理 【免费下载链接】jellyfin The Free Software Media System - Server Backend & API 项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin Jellyfin作为开源媒体服务器,其字幕管理子系统采…

2026/10/18 22:22:58 阅读更多 →
AI 服装质检数据如何对接 MES,实现单件全流程质量追溯

AI 服装质检数据如何对接 MES,实现单件全流程质量追溯

从“批次管理”到“单件追溯”的质变 在传统服装制造中,质量追溯往往停留在“批次”层面——一批次面料、一批次成衣。一旦发现瑕疵,整批返工或报废,成本高昂且效率低下。随着消费者对品质要求的提升和柔性化生产趋势,单件全流程质…

2026/10/19 15:54:45 阅读更多 →

最新新闻

多摩川绝对式编码器读取:STM32与RS485通信实现及伺服调试避坑指南

多摩川绝对式编码器读取:STM32与RS485通信实现及伺服调试避坑指南

简介:基于STM32F429的多摩川TS5668N21编码器读取程序完整源码包,面向工业自动化、电机控制与精密定位领域的嵌入式软硬件开发者。工程围绕ADM485(RS-485)半双工通信协议展开,涵盖STM32CubeMX引脚分配、时钟树与UART参数…

2026/10/20 20:23:58 阅读更多 →
汇编ADC指令详解:从进位标志CF到多字节加法的底层原理

汇编ADC指令详解:从进位标志CF到多字节加法的底层原理

学汇编一段时间后,大家基本都会遇到ADC这条指令。说实话,这条指令在指令表里毫不起眼,最多被解释成一句"带进位加法",但真到了实战里,你会发现它远比表面复杂:写大数加法要用它,调试进…

2026/10/20 20:23:58 阅读更多 →
降AI率实操指南:从原理到工具,教你打造真人感文本

降AI率实操指南:从原理到工具,教你打造真人感文本

1. 先弄明白“降AI率”到底在降什么最近不少同学来找我,张口就是“哥,有没有降AI率的工具推荐?”。一开始我以为是小众需求,结果问了一圈才发现,这事已经成了很多人的刚需。无论是交课程论文、写实训报告,还…

2026/10/20 20:23:58 阅读更多 →
大模型知识更新利器:RAG检索增强生成原理与实战指南

大模型知识更新利器:RAG检索增强生成原理与实战指南

大模型知识更新的老难题,RAG(Retrieval-Augmented Generation,检索增强生成)确实是我近两年见过最实用的解法。它给大模型开了一场“开卷考试”,让模型不再凭记忆硬答,而是先翻书、再答题,从根上…

2026/10/20 20:23:58 阅读更多 →
纯HTML+CSS重构游戏平台首页:Flexbox与Grid布局实战

纯HTML+CSS重构游戏平台首页:Flexbox与Grid布局实战

1. 为什么我要拿一个游戏平台首页做重构练习先说说这个项目的由来。我在带新人的时候经常遇到一个尴尬情况:简历上写着“精通 HTML 和 CSS”,丢过来一个静态页面,结构全是 div 套 div,类名清一色box1、box2、left、right&#xff…

2026/10/20 20:23:58 阅读更多 →
Jenkinsfile核心难点:作用域、凭据、并行与错误处理四大陷阱

Jenkinsfile核心难点:作用域、凭据、并行与错误处理四大陷阱

1. 这不是写脚本,是在给流水线“立规矩”:Jenkinsfile 的真实定位与核心难点本质很多人第一次打开 Jenkinsfile,下意识把它当成“写个 shell 脚本就行”,结果跑起来要么阶段莫名失败、要么环境变量死活不生效、要么并行任务互相污…

2026/10/20 20:22:55 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →