【发布时间】:2021-11-15 16:04:40
【问题描述】:
首先,我还是 docker 的初学者。
我需要运行多个版本的 TensorFlow,每个版本都需要一个特定的 cuda 版本。
我的主机操作系统是 ubuntu 16.04
我需要在我的操作系统上有多个版本的 cuda,因为我正在处理多个项目,每个项目都需要不同版本的 cuda。我尝试使用 conda 和虚拟环境来解决这个问题。过了一会儿,我放弃了,开始寻找替代品。
显然虚拟机无法访问 GPU,只有拥有特定的 gpu 类型才能运行官方的 NVIDIA 可视化器。
我有一个 NVIDIA 1080 gpu。我安装了 Ubuntu 16.04 的新镜像,并开始使用 dockerfiles 为我的项目创建自定义镜像。
我试图避免使用 docker 以避免复杂性,在我安装和运行多个版本的 cuda 失败后,我转向了 docker。显然,如果您不在主机上安装 cuda 驱动程序,您将无法直接通过 docker 访问 cuda。
我仍然不确定是否可以运行与我安装在我的电脑中的 cuda 版本不同的 docker 容器。
如果是这样的话,英伟达就搞砸了。通常,如果他们不需要使用 docker,我们会避免使用它来克服额外的复杂性。当我们需要使用多个环境时,conda 和虚拟环境都失败了。我们前往码头。所以如果 nvidia 将 docker 容器中的使用限制为一个 cuda 版本,他们只打算允许开发人员在每个操作系统上处理一个具有特殊依赖项的项目。
请确认我是否可以运行每个都有特定的容器cuda 版本。
此外,如果有人指出如何使用 conda 环境构建 docker 文件以及如何在 docker 容器中运行 conda env 的指南,我将不胜感激。
【问题讨论】:
-
不太清楚你在问什么:如果你可以从 Docker 内部运行 CUDA,那么为什么不创建多个镜像,每个镜像都有其特定的 CUDA 版本?相应地标记每个图像(例如,在标记中包含 CUDA 版本)。我认为混淆可能在于 image 和 container 之间的区别。您基于给定的图像运行容器。您可以使用所需的任何版本的软件构建映像,这些软件将在您运行时执行。
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: docker cuda ubuntu-16.04