开发者社区> 问答> 正文

使用 Docker 安装 facechain 失败,无法启动,缺乏 GPU 支持,请问如何解决?

执行代码

docker run -it --name facechain -p 7860:7860 --gpus all registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.7.1-py38-torch2.0.1-tf1.15.5-1.8.0 /bin/bash

当前环境

  • 操作系统:wsl2 Ubuntu 22.04.3 LTS
  • NVIDIA-SMI 535.103
  • Driver Version: 537.13
  • CUDA Version: 12.2 (我怀疑是这个不兼容)

报错提示

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overlay2/0a9ddafd443a1997f90eb47487a19704ee306c5d6b338ddc9dcb8a6f142af18a/merged/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1: file exists: unknown.

已操作说明:

  1. 安装 nvidia-container-runtime
  2. 安装 nvidia-docker2
  3. 重启 docker 服务
  4. 使用 docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu20.04 nvidia-smi 测试是否安装成功,已经显示正确版本;

请各位大佬们,看看如何解决这个问题,

展开
收起
1008461584262758 2023-09-09 19:03:09 231 0
4 条回答
写回答
取消 提交回答
  • 您需要安装 NVIDIA 的驱动程序,以便 Docker 容器可以访问 GPU。您可以从 NVIDIA 官方网站下载适合您系统的驱动程序,并按照说明进行安装。

    2023-09-10 12:52:19
    赞同 展开评论 打赏
  • 根据您提供的信息,报错提示是缺乏GPU支持导致无法启动facechain容器。虽然您已经安装了nvidia-container-runtime和nvidia-docker2,并且使用docker run --gpus all命令进行测试成功,但在具体的facechain容器中仍然出现问题。

    以下是一些可能的解决方案:

    1. 检查CUDA版本兼容性:您怀疑CUDA版本可能不兼容,确保您使用的CUDA版本与facechain容器所需的版本相匹配。您可以查看facechain的文档或联系容器维护者以获取更多关于CUDA版本的信息。

    2. 检查GPU驱动和CUDA安装:确保您的系统中正确安装了适当版本的NVIDIA GPU驱动程序和CUDA工具包。您可以尝试重新安装或更新GPU驱动程序和CUDA工具包,以确保它们与面向facechain容器的版本兼容。

    3. 更新docker版本:尝试更新docker版本,以确保docker与GPU驱动程序和CUDA工具包之间的兼容性。您可以查看docker的官方文档或社区支持来获取有关docker版本和GPU支持的详细信息。

    4. 查看facechain容器要求:确保您理解facechain容器的要求和依赖项。可能需要额外的配置或设置才能使facechain容器正确运行。建议查阅facechain的文档或联系容器维护者以获取更多关于配置和设置的信息。

    2023-09-10 08:53:16
    赞同 展开评论 打赏
  • 根据你的描述,你正在尝试在一个 WSL2 环境中运行一个包含 NVIDIA GPU 支持的 Docker 镜像。但是,你遇到了一些问题,主要是在挂载 NVIDIA GPU 设备时出现了错误。

    首先,看起来你已经在你的系统上安装了 NVIDIA 容器运行时(nvidia-container-runtime)和 NVIDIA 驱动程序。然而,你仍然需要确保你的 Docker 客户端和守护进程也支持 NVIDIA GPU。你可以通过运行以下命令来检查:

    sudo service docker restart
    

    这将重新启动 Docker 守护进程,使其使用 NVIDIA 容器运行时。

    接下来,你应该能够在你的 WSL2 环境中成功运行带有 GPU 支持的 Docker 镜像。例如,你可以尝试运行以下命令:

    docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu20.04 nvidia-smi
    

    如果一切正常,你应该看到 NVIDIA GPU 设备被正确识别和管理。

    2023-09-10 08:34:58
    赞同 展开评论 打赏
  • 然后其实我不安装 nvidia-container-runtime、nvidia-docker2 都发现可以正常使用 --gpus all 并且进入系统 查看 GPU 相关信息

    2023-09-09 19:12:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载