使用 nvidia 运行时构建 docker

标签 docker nvidia-docker

我有一个 GPU 应用程序,它在图像构建阶段进行单元测试。
使用 Docker 19.03,可以使用 docker run --gpus all 指定 nvidia 运行时但我还需要访问 docker build 的 GPU因为我做单元测试。我怎样才能实现这个目标?

对于使用 nvidia-docker2 的旧版本 docker,无法在构建阶段指定运行时,但您可以将默认运行时设置为 nvidia,这样 docker build 就可以正常工作。我可以在不再需要 nvidia-docker 的 Docker 19.03 中做到这一点吗?如果是这样,如何?

最佳答案

您需要使用 nvidia-container-runtimedocs 中所述:“这也是在 docker build 期间访问 GPU 的唯一方法”。

Ubuntu 的步骤:

  • 安装 nvidia-container-runtime:
    sudo apt-get install nvidia-container-runtime
  • 编辑/创建/etc/docker/daemon.json 内容:
  • {
        "runtimes": {
            "nvidia": {
                "path": "/usr/bin/nvidia-container-runtime",
                "runtimeArgs": []
             } 
        },
        "default-runtime": "nvidia" 
    }
    
  • 重启 docker 守护进程:
    sudo systemctl restart docker
  • 构建您的图像(现在 GPU 在构建过程中可用):
    docker build -t my_image_name:latest .
  • 关于使用 nvidia 运行时构建 docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59691207/

    相关文章:

    laravel - gitlab-ci期间无法在docker中启动MySQL服务

    docker - 如何查看谁创建了 Docker 镜像?

    multithreading - TensorRT 多线程

    docker - 如何清理我的 docker 主机

    python - 如何在 Alpine Linux 容器上安装 pyzmq?

    docker - 禁用特定 RUN 命令的缓存

    docker - 可以在没有 GPU 的情况下运行 nvidia-docker 吗?

    mysql - "Can' t 连接到本地 MySQL 服务器”在 docker-compose 中

    docker - 如何让 Docker 识别 NVIDIA 驱动程序?

    docker - 是否可以在没有 GPU 的服务器上构建基于 `nvidia/cuda` 的图像?