Linux下Docker及Nvidia Container ToolKit安装教程

news/2025/2/11 20:21:21/文章来源:https://www.cnblogs.com/SkyXZ/p/18710410

作者:SkyXZ

CSDN:SkyXZ~-CSDN博客

博客园:SkyXZ - 博客园

        我们接下来在Ubuntu中安装Docker(安装详见:Get Docker | Docker Docs)及NVIDIA Container Toolkit(安装详见:Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.17.3 documentation),接着我将从头带着大家走一遍这个过程,首先便是安装Docker,我们先卸载系统默认安装的docker并安装一些必要支持:

#如果有便删,报错说没有那就无所谓不用管
sudo apt-get remove docker docker-engine docker.io containerd runc
#下载必要依赖
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

        我们默认大家不会使用代理,因此我们所有的源均使用国内源,我们添加阿里的GPG KEY以及阿里的APT源后便可以直接APT安装Docker的最新版本啦

# step 1 添加阿里GPG Key
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# step 2 添加阿里Docker APT源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# step 3 Update
sudo apt update
sudo apt-get update# step 4 下载Docker
sudo apt install docker-ce docker-ce-cli containerd.io# step 5 验证Docker安装
sudo docker version      #查看Docker版本
sudo systemctl status docker   #验证Docker运行状态

image-20250119030911095

        如果验证Docker安装均有输出且正常运行那么便代表我们的Docker安装完成啦,接着我们将无root权限的用户添加到Docker用户组中,这样我们便可以让当前用户在不切root,或者不加sudo 的情况下正常使用 docker 命令:

  sudo groupadd dockersudo gpasswd -a ${USER} dockersudo service docker restart

        但是到这里还没有结束,因为大概率大家运行docker run hello-world是会一直报如下网络错误:

image-20250119031023140

        这是因为国内暂时无法直接访问Docker源镜像,我们需要使用第三方Docker源,我在这里帮大家已经整理好了一些常见的Docker源,大家只需要添加进/etc/docker/daemon.json文件即可:

# step 1 创建 or 编辑 /etc/docker/daemon.json
sudo nano /etc/docker/daemon.json
# step 2 复制粘贴进入文件
{"registry-mirrors": ["https://dockerproxy.com","https://docker.m.daocloud.io","https://cr.console.aliyun.com","https://ccr.ccs.tencentyun.com","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://github.com/ustclug/mirrorrequest","https://registry.docker-cn.com"]
}
# step 3 重载配置文件,并重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker
# step 4 查看Docker配置检查是否配置成功
sudo docker info 

image-20250119032119216

        可以看到运行了docker info命令后终端输出了我们之前添加进去的docker源地址,这时候我们再次运行docker run hello-world便可以看到docker成功下载了对应的镜像并打印输出了“Hello from Docker!”

image-20250119032356533

        安装完docker,接着我们来安装NVIDIA Container Toolkit 电脑没有GPU或者是使用的VM等虚拟机的同学可以跳过这一步了,由于你们无法访问到GPU所以这步不需要安装,这个工具链组件是一个Nvidia提供的一组工具,安装了之后我们便可以在Docker中使用GPU并能够支持 GPU 加速,由于Nvidia的文档写的非常的详细,因此我们按照英伟达文档中的步骤来安装配置

        类似于之前的Docker,我们需要添加Nvidia官方的源,添加了之后我们便可以直接使用APT安装啦

# step 1 配置生产存储库
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# step 2 Update
sudo apt-get update
# step 3 使用APT安装
sudo apt-get install -y nvidia-container-toolkit #如果没有代理这部分耗时会比较久

        接着我们开始为Docker配置NVIDIA Container Runtime,这部分很简单只需要两行命令即可:

sudo nvidia-ctk runtime configure --runtime=docker #使用nvidia-ctk命令修改/etc/docker/daemon.json 文件
sudo systemctl restart docker #重启Docker守护进程

        最后输入以下命令即可验证我们的配置是否成功,如果出现下图即代表Nvidia Container Toolkit安装完成啦!!!

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

image-20250119034046615

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/882234.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在用 uni-app 开发钉钉小程序的时候遇到一个奇怪的问题,发送请求拿不到返回的数据

今天我一位同事说用 uni-app 新开发的钉钉小程序里发送请求拿不到返回的数据,看了下发现调试工具的“Network”栏里显示请求是发送成功的,也有返回数据,但是没触发请求的回调函数。 原本用的是 luch-request 这个库发送的请求,后来试了下 uni-app 内置的 uni.request 以及钉…

15. 进程处理

一、什么是进程进程(Process)是正在运行的程序,是操作系统进行资源分配的基本单位。程序是存储在硬盘或内存的一段二进制序列,是静态的,而进程是动态的。每个进程都由自己的地址空间、代码段、数据段以及分配给它的其它系统资源(如文件描述符、网络连接等)。 二、创建子…

我把deepseek等大模型接入了微信公众号,打造个人AI助手

我把deepseek等大模型接入了微信公众号,打造个人AI助手前言 最近deepseek大模型可是火出了圈,给国产大模型公司点赞。于是乎去deepseek试了一下效果,奈何太多人使用了,问两句来一句 “服务器繁忙,请稍后再试”,体验感实在太差了。 作为程序员,怎么能忍受?于是乎去寻找d…

(未解决)word中插入pdf图片(高清、矢量图)

(未解决)word中插入pdf图片(高清、矢量图) 1.个人诉求: pdf高清矢量格式的图片,插入至word中 2.尝试的解决方法: https://blog.csdn.net/weixin_45399376/article/details/115281547?spm=1001.2014.3001.5502。 3.具体操作步骤: 1)word——插入——对象——文件中的文…

一语总结

一语总结 真心建议把找到的一些性质和做法以文字形式写下来,当掉不过样例的时候一个一个检查其正确性。”P9169 [省选联考 2023] 过河卒“用DFS将环当作平局是错误的因为这可能只是一个不优的必胜/必败局面,正确的做法是老实建图按拓扑序跑BFS。就这个结论的错误害我虚空调题…

软考高级《系统架构设计师》知识点(二)

操作系统知识 操作系统概述操作系统定义:能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。 操作系统有三个重要的作用:管理计算机中运行的程序和分配各种软硬件资源; 为用户提供…

Linux驱动---LED

本文介绍了 Linux 内核中的 pinctrl 子系统和 GPIO 子系统,并通过编写 RGB 三色灯驱动程序,展示了如何在实际应用中使用这两个子系统来控制硬件设备目录一、pinctrl子系统二、GPIO子系统三、GPIO操作步骤3.1、获取GPIO描述符3.2、设置方向3.3、读写值四、编写LED驱动4.1、硬件…

PVE 服务器通过脚本进行优化

此处使用的优化脚本为pve_source.tar.gz,需要的可以自己从网上下载‌pve_source‌是一款用于Proxmox VE(PVE)的辅助脚本,主要用于一键换源、更新系统、升级系统、开启直通等功能,能够方便地进行PVE虚拟机的配置和管理,提高工作效率。‌ 一、上传并运行优化脚本 1、首先我…

018 Module的语法

历史上,JavaScript一直没有模块(module)体系,无法将一个大程序拆分成相互依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如Ruby的require、Python的import,甚至就连CSS都有@import,但是JavaScript任何方面的支持都没有,这对开发大型的、复杂的项目形成…

另辟新径实现 Blazor/MAUI 本机交互(三)

新建一个Maui blazor工程, 下面是工程关键文件解析. MainPage.xaml.cs 构造函数:通过 FindByName 方法查找名为 webView 的 WebView 控件,并将其赋值给 wvBrowser 变量。 创建 NativeBridge 的实例 api,并将 wvBrowser 传递给它。 使用 api.AddTarget 方法添加一个名为 dial…

nodejs如何处理Token?一文深入浅出JWT签名验签

关于token的那些事儿,一文深入浅出JWT签名验签前端开发中关于Token的那些事儿:深入浅出JWT签名验签 作为前端也要懂JWT,首先了解两个概念JWK JWT JWK JWK(RSA JSON Web Key)是一种用于表示 RSA 公钥或私钥的 JSON 对象,JWK 是 JSON Web Token (JWT) 和 JSON Web Encrypti…