当前位置: 首页 > 知识库问答 >
问题:

使用docker容器中的GPU?

骆昊阳
2023-03-14

我正在寻找一种从docker容器内部使用GPU的方法

共有1个答案

华乐逸
2023-03-14

Regan的回答很好,但有点过时,因为正确的方法是避免使用lxc执行上下文,因为从Docker0.9开始,Docker已经放弃了lxc作为默认执行上下文。

相反,最好通过--device标志告诉docker有关nvidia设备的信息,并且只使用本机执行上下文而不是LXC。

这些指令在以下环境下进行了测试

    null
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
$ sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
$ sudo apt-get update && sudo apt-get install lxc-docker
ls -la /dev | grep nvidia

crw-rw-rw-  1 root root    195,   0 Oct 25 19:37 nvidia0 
crw-rw-rw-  1 root root    195, 255 Oct 25 19:37 nvidiactl
crw-rw-rw-  1 root root    251,   0 Oct 25 19:37 nvidia-uvm
 $ sudo docker run -ti --device /dev/nvidia0:/dev/nvidia0 --device /dev/nvidiactl:/dev/nvidiactl --device /dev/nvidia-uvm:/dev/nvidia-uvm tleyden5iwx/ubuntu-cuda /bin/bash
$ cd /opt/nvidia_installers
$ ./cuda-samples-linux-6.5.14-18745345.run -noprompt -cudaprefix=/usr/local/cuda-6.5/

生成deviceQuery示例:

$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ make
$ ./deviceQuery   

如果一切正常,您应该看到以下输出:

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs =    1, Device0 = GRID K520
Result = PASS
 类似资料:
  • 主要内容:Docker 客户端,容器使用,运行一个 web 应用,查看 WEB 应用容器,网络端口的快捷方式,查看 WEB 应用程序日志,查看WEB应用程序容器的进程,检查 WEB 应用程序,停止 WEB 应用容器,重启WEB应用容器,移除WEB应用容器Docker 客户端 docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。 可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。

  • 上一节中,我们学会了如何从Docker Hub官方仓库中获取镜像。同时,我们已经知道,Docker镜像是静态的,要使用它,就是以镜像为模板,创建并运行Docker容器应用。 本节我们将详细介绍Docker容器的使用,在了解容器的各项操作之前,我们先来回顾一下,Docker 容器的生命周期里分为五种状态,其分别代表着: Created:容器已经被创建,容器所需的相关资源已经准备就绪,但容器中的程序还

  • 运行诸如之类的git命令

  • 我正在docker容器中设置一个应用程序。我希望这个应用程序能够与localstack堆栈容器localstack文档连接。当我运行时,容器会成功启动。我可以运行docker-compose文件中未包含的独立java应用程序,它将成功连接到localstack容器。但与localstack一起启动的应用程序无法连接。我看过docker文档和localstack文档,我想不出如何让这些东西彼此通信。

  • 我认为这是因为容器没有JAVA_HOME变量集。我执行了和尝试命令,但它没有显示java可执行文件。此外,java和javac命令不起作用。 有人知道我做错了什么吗?如有任何帮助,不胜感激。提前感谢!

  • 问题内容: 我有一个应用程序可以使用Git执行各种有趣的操作(例如运行git clone和git push),而我正在尝试对其进行docker-ize。 我遇到了一个问题,尽管我需要能够向容器中添加SSH密钥以供容器“用户”使用。 我尝试将其复制到,进行更改,创建了一个git ssh包装器,但还是没有运气。 这是Dockerfile供参考: 运行git命令,如 问题答案: 原来使用Ubuntu时,