当前位置: 首页 > news >正文

GPU机器安装docker

由于访问大模型的服务采用容器部署,因此需要在服务器上安装docker以及支持GPU的docker插件nvidia-docker

nvidia-docker简介

Nvidia-Docker 是一个用于在 Docker 容器中轻松管理和运行 NVIDIA GPU 加速应用程序的工具。它简化了在容器中使用 NVIDIA GPU 的过程,使得开发者可以更便捷地部署和运行需要 GPU 计算能力的应用程序,如深度学习、机器学习、科学计算等。

离线安装

1、确定操作系统版本

uname -a#输出
Linux PretroX 5.15.0-67-generic #74~20.04.1-Ubuntu SMP Wed Feb 22 14:52:34 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Linux:

  • 表示操作系统的内核名称,这里是 Linux 内核。

PretroX:

  • 这是系统的主机名(Hostname),即这台计算机的名称。在这个例子中,主机名为 PretroX

5.15.0-67-generic:

  • 这是当前运行的 Linux 内核版本。具体来说:
    • 5.15.0 是内核的主版本号。
    • 67 是内核的修订版本号,表示这是第 67 次修订。
    • generic 表示这是一个通用的内核版本,适用于大多数桌面和服务器环境。

#74~20.04.1-Ubuntu:

  • 这部分提供了关于内核构建的更多信息:
    • 74 是构建号(Build Number),表示这是第 74 次构建。
    • ~20.04.1 表示这个内核是基于 Ubuntu 20.04.1 版本开发的。波浪号 ~ 通常表示这是一个开发分支或预发布版本。
    • Ubuntu 表示这个内核是为 Ubuntu 操作系统构建的。

SMP Wed Feb 22 14:52:34 UTC 2023:

  • SMP 表示对称多处理(Symmetric Multi-Processing),意味着内核支持多核处理器。
  • Wed Feb 22 14:52:34 UTC 2023 是内核编译的日期和时间,即 2023 年 2 月 22 日星期三,14:52:34 UTC 时间。

x86_64 x86_64 x86_64:

  • 这部分描述了系统的架构:
    • x86_64 表示这是一个 64 位的 x86 架构处理器。重复三次可能是显示格式的问题,通常只出现一次 x86_64 即可表示系统架构。

GNU/Linux:

  • 表示操作系统是基于 GNU 工具链和 Linux 内核构建的。GNU 提供了许多基础工具和库,与 Linux 内核结合形成了完整的操作系统。

2、去docker官网下载对应的离线安装包

​ 官网下载地址:https://download.docker.com/linux/ 。下级目录为操作系统:

centos/
debian/
fedora/
raspbian/
rhel/
sles/
static/
ubuntu/

​ 根据第1步查看的操作系统,则确定安装包路径:https://download.docker.com/linux/ubuntu/dists/ 。下级目录为版本号。ubuntu的版本号用的是名字,参考:https://wiki.ubuntu.com/Releases。有以下对应关系:

版本名称:Artful Aardvark,版本号:17.10
版本名称:Bionic Beaver,版本号:18.04 LTS
版本名称:Cosmic Cuttlefish,版本号:18.10
版本名称:Disco Dingo,版本号:19.04
版本名称:Eoan Ermine,版本号:19.10
版本名称:Focal Fossa,版本号:20.04 LTS
版本名称:Groovy Gorilla,版本号:20.10
版本名称:Hirsute Hippo,版本号:21.04
版本名称:Impish Indri,版本号:21.10
版本名称:Jammy Jellyfish,版本号:22.04 LTS
版本名称:Kinetic Kudu,版本号:22.10
版本名称:Lunar Lobster,版本号:23.04
版本名称:Mantic Minotaur,版本号:23.10
版本名称:Noble Narwhal,版本号:24.04 LTS(预计)
版本名称:Trusty Tahr,版本号:14.04 LTS
版本名称:Xenial Xerus,版本号:16.04 LTS
版本名称:Yakkety Yak,版本号:16.10
版本名称:Zesty Zapus,版本号:17.04

3、安装docker

3.1、确定目录

根据版本,进入对应的目录:20.04 则对应 focal。 操作系统架构为x86_64,但是官网没有,则可以使用amd64的,是兼容的。

则url为:https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/

3.2、确定docker版本

docker需要安装很多组件,但是此目录下每个组件都有多个版本,不知道具体的版本对应,则需要去docker官网查找对应版本。

docker安装以下组件:

  • containerd:独立的容器运行时(container runtime),负责管理容器的生命周期,包括启动、停止和监控容器。它是 Docker 的核心组件之一,提供了底层的容器管理功能。
  • docker-buildx:Docker 官方提供的构建插件,用于增强 Docker 的构建功能
  • docker-ce-cli:Docker 社区版(Community Edition)的命令行界面(CLI)工具,用于与 Docker 守护进程(daemon)进行交互,执行各种容器管理操作。
  • docker-ce-rootless-extras:是 Docker 社区版的附加组件,支持以非 root 用户身份运行 Docker 守护进程和客户端,增强安全性。
  • docker-ce:Docker 社区版的完整安装包,包含 Docker 的核心组件,如 Docker 守护进程、Docker CLI 等,提供完整的容器管理功能。
  • docker-compose-plugin: Docker 官方提供的插件,用于扩展 Docker Compose 的功能,支持更复杂的编排需求和高级特性。
  • docker-scan-plugin:Docker 官方提供的安全扫描插件,用于检测 Docker 镜像中的漏洞和安全问题。

选择一个版本,例如:20.10,进入docke官网:https://docs.docker.com/engine/release-notes/20.10/

查找当前版本支持的每个组件的对应版本:

20.10.24
Updates
Update Go runtime to 1.19.7.                  # go的,不用管
Update Docker Buildx to v0.10.4.			#buildx
Update containerd to v1.6.20.				# containerd
Update runc to v1.1.5.

在本页面搜索其他组件的版本。

Update Docker Compose to v2.15.1.        #docker-compose-plugin

docker-ce-clidocker-ce 保持版本一致,与选择的版本一致。

3.3、下载 *.deb 文件,放到服务器上,执行以下命令:

dpkg -i *.deb# 安装完后验证:
docker -vsystemctl status docker 

一般对应的版本的安装包,不会再提示缺少依赖了。如果仍然缺少,则可以降低版本。

根据需要配置/etc/docker/daemon.json,然后重启docker。

4、去官网下载nvidia-docker的离线安装包

https://mirror.cs.uchicago.edu/nvidia-docker/libnvidia-container/stable/ubuntu20.04/amd64/

在里面选择一个匹配的版本。然后去官网下载压缩包:https://github.com/NVIDIA/nvidia-container-toolkit/releases

libnvidia-container有以下组件:

  • libnvidia-container 是基础库,提供了与 NVIDIA GPU 交互的核心功能。
  • libnvidia-container-toolsnvidia-container-runtime 利用 libnvidia-container 提供的功能,简化了容器化环境中的 GPU 配置和管理。
  • nvidia-container-toolkit 将这些组件整合在一起,提供了一整套工具和脚本,方便用户安装和配置。
  • nvidia-docker2 则是在 Docker 生态系统中应用这些工具,使用户能够通过简单的 Docker 命令使用 GPU 加速。
  • libnvidia-container1libnvidia-container 的一个具体实现版本,通常以 .so 文件的形式存在,供应用程序动态链接使用。

选择一个版本,然后下载对应的压缩包

#这是 deb 格式的 amd64架构的。
nvidia-container-toolkit_1.17.5_deb_amd64.tar.gz

5、安装nvidia-docker

dpkg -i *.deb
# 安装之后,会提示是否覆盖 daemon.json,会在里面加一些配置。
#安装完成后,重启 docker
systemctl restart docker

离线部署建议直接通过实用性角度进行验证。

docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi
http://www.xdnf.cn/news/1064953.html

相关文章:

  • Python下构建毫秒级低延迟RTSP/RTMP播放器并实现AI视觉处理
  • 数据库(1)-SQL
  • EXPLAIN优化 SQL示例
  • Oracle 数据库查询:单表查询
  • 统计用户本月的连续登录天数
  • 62-Oracle ADR(Automatic Diagnostic Repository)
  • 量化-因子处理
  • 【递归,搜索与回溯算法】记忆化搜索(二)
  • Vue.js数据代理与事件处理全解析:从原理到实践
  • 【DDD】——带你领略领域驱动设计的独特魅力
  • React基础
  • MakeItTalk: Speaker-Aware Talking-Head Animation——说话者感知的说话头动画
  • 【笔记】Windows 系统迁移 Ubuntu(Preview)应用到其他磁盘
  • Element表格表头合并技巧
  • 第八章 目录一致性协议 A Primer on Memory Consistency and Cache Coherence - 2nd Edition
  • Bytemd@Bytemd/react详解(编辑器实现基础AST、插件、跨框架)
  • 分库分表下的 ID 冲突问题与雪花算法讲解
  • JVM(10)——详解Parallel垃圾回收器
  • python高校教务管理系统
  • 超详细YOLOv8/11图像菜品分类全程概述:环境、数据准备、训练、验证/预测、onnx部署(c++/python)详解
  • TypeScript类型定义:Interface与Type的全面对比与使用场景
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十六) -> 配置构建(三)
  • 算法导论第二十五章 深度学习的伦理与社会影响
  • C4.5算法深度解析:决策树进化的里程碑
  • 怎么让二级域名绑定到wordpesss指定的页面
  • 0-机器学习简介
  • winform mvvm
  • opencv 之双目立体标定算法核心实现
  • STM32F103C8T6,窗口看门狗(WWDG)与独立看门狗(IWDG)详解
  • all()函数和any()函数