安装Docker GPU版本的过程及遇到坑的解决

 更新时间:2025年04月30日 09:41:49   作者:Tiandaren  
本文主要介绍了安装Docker GPU版本的过程及遇到坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

首先,安装的 Docker 版本并不支持 GPU,因此需要安装支持 GPU 的 Docker 版本。然而,在安装和配置过程中,遇到了一系列问题和挑战。

错误的安装步骤

以下是我在尝试安装 GPU 版本时,执行的错误操作:

# 安装 NVIDIA 驱动
sudo apt-get update
sudo apt-get install -y nvidia-driver-460

# 添加 NVIDIA 运行时配置
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=/usr/bin/nvidia
EOF

# 重新启动 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker

这段脚本是根据 GPT 提供的方案执行的,但我没有注意到它可能会导致一些问题。最终我发现,在执行完该脚本后,Docker 无法启动,并且出现了以下错误:

xtx@dell-PowerEdge-R750:~$ nvidia-docker --version
nvidia-docker: command not found

发现问题:NVIDIA 驱动安装冲突

接下来,我发现 nvidia-smi 无法执行,也无法找到 NVIDIA 相关的命令。通过检查 NVIDIA 驱动,发现系统中安装了多个版本的 NVIDIA 驱动。

dpkg -l | grep nvidia

于是,我尝试卸载了 nvidia-driver-460,但问题依旧存在:

sudo apt-get remove --purge nvidia-driver-460

多次尝试卸载仍然没有解决问题,驱动仍然有冲突。于是决定彻底清理所有 NVIDIA 驱动,并重新安装:

# 清除所有 NVIDIA 驱动
sudo apt-get purge nvidia*

# 更新包管理器
sudo apt-get update

# 安装正确版本的 NVIDIA 驱动
sudo apt-get install nvidia-driver-470 nvidia-utils-470

重新安装驱动后,虽然成功安装了 NVIDIA 驱动,但执行 nvcc -V 命令时没有任何输出。这时我怀疑问题可能与 CUDA Toolkit 无关,因为在安装驱动时并没有安装 CUDA。

权限问题及解决

接下来,我检查了 ~/.bashrc 文件,确认路径没有问题。然而,考虑到权限问题,我以 root 用户身份进行检查,发现没有问题。这一步解决了驱动的问题。

安装 Docker GPU 版本及其问题

接下来,我按照官方教程安装 Docker 的 GPU 版本,并配置了相应的 NVIDIA 运行时。但在启动 Docker 时,遇到了如下错误:

(tx) xtx@dell-PowerEdge-R750:/data/xtx/nnUNet/nnunetv2/inference$ systemctl status docker.service
Warning: The unit file, source configuration file or drop-ins of docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
× docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/docker.service.d
             └─override.conf
     Active: failed (Result: exit-code) since Thu 2025-01-16 13:39:52 CST; 7min ago
TriggeredBy: × docker.socket
       Docs: https://docs.docker.com
    Process: 113728 ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=/usr/bin/nvidia (code=exited, status=1/FAILURE)
   Main PID: 113728 (code=exited, status=1/FAILURE)
        CPU: 92ms

解决问题的过程

一开始,我尝试按照网上的建议修改 /etc/docker/daemon.json 文件,切换到国内镜像源。然而,修改后仍然报错。接着,我打开了 override.conf 文件,发现最初配置中使用了 ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=/usr/bin/nvidia 这一行,而这一行实际上导致了启动失败。

最终,我删除了这行配置,并重新加载并重启了 Docker 服务:

# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 重启 Docker 服务
sudo systemctl restart docker

此时,Docker 成功启动,问题得到解决。

简单总结一下

平常使用GPT习惯了,感觉简单问题直接按照它的命令行输入就行,没有仔细理解该指令背后的含义,从而导致版本冲突。另外,发生问题太依赖GPT和教程了,缺少自己的反思。

再面对类似的问题时,应该从头逐步排除法,从系统配置到具体服务的每一步都要仔细检查。解决问题的关键往往是细致入微的排查和多角度的分析。即便是看似简单的操作,背后也可能隐藏着复杂的系统交互和配置依赖。

到此这篇关于安装Docker GPU版本的过程及遇到坑的解决的文章就介绍到这了,更多相关安装Docker GPU版本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker存储目录问题以及如何修改Docker默认存储位置

    Docker存储目录问题以及如何修改Docker默认存储位置

    在Docker中,默认情况下数据存储路径为/var/lib/docker,随着容器和镜像数量的增加,这可能会占用大量磁盘空间,这篇文章主要给大家介绍了关于Docker存储目录问题以及如何修改Docker默认存储位置的相关资料,需要的朋友可以参考下
    2024-08-08
  • Docker的镜像制作与整套项目一键打包部署的实现

    Docker的镜像制作与整套项目一键打包部署的实现

    这篇文章主要介绍了Docker的镜像制作与整套项目一键打包部署的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 使用docker部署django技术栈项目的方法步骤

    使用docker部署django技术栈项目的方法步骤

    这篇文章主要介绍了使用docker部署django技术栈项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • docker网络,docker-compose network问题

    docker网络,docker-compose network问题

    这篇文章主要介绍了docker网络,docker-compose network问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Linux Docker安装wordpress的方法详解教程

    Linux Docker安装wordpress的方法详解教程

    这篇文章主要介绍了Linux Docker安装wordpress的方法详解教程的相关资料,需要的朋友可以参考下
    2016-10-10
  • Docker Swarm从部署到基本操作

    Docker Swarm从部署到基本操作

    这篇文章主要介绍了Docker Swarm从部署到基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 使用Docker安装部署MySQL和Redis的详细过程

    使用Docker安装部署MySQL和Redis的详细过程

    这篇文章主要介绍了使用Docker安装部署MySQL和Redis,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Docker中的compose简介

    Docker中的compose简介

    Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用,这篇文章主要介绍了Docker之compose介绍,需要的朋友可以参考下
    2023-02-02
  • docker-修改容器挂载目录的3种方法小结

    docker-修改容器挂载目录的3种方法小结

    这篇文章主要介绍了docker-修改容器挂载目录的3种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker安装阿里云服务器和在虚拟机安装遇到的坑(问题小结)

    Docker安装阿里云服务器和在虚拟机安装遇到的坑(问题小结)

    这篇文章主要介绍了Docker安装阿里云服务器和在虚拟机安装遇到的坑,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论