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

11

我有一个基于nvidia/cudaDockerfile文件,就像这样:

FROM nvidia/cuda:11.0-base

...

我希望能够在没有 Nvidia GPU 的 CI 服务器上构建这个 Dockerfile。但是当我尝试这样做时,会出现以下错误:

------
 > [1/6] FROM docker.io/nvidia/cuda:11.0-base:
------
failed to solve with frontend dockerfile.v0: failed to solve with frontend gateway.v0: rpc error: code = Unknown desc = failed to build LLB: failed to load cache key: docker.io/nvidia/cuda:11.0-base not found

这个错误提示图片未找到,但我认为这有点误导人。我已经确定问题出在是否存在GPU上。

在具有Nvidia GPU的服务器上构建此 Dockerfile 时,我没有遇到此错误。是否可能在没有GPU的服务器上基于 nvidia/cuda 镜像构建 Dockerfile?这将节省我们CI服务器的成本。

我计划在具有GPU的服务器上部署生成的docker容器,换句话说,是否可能将GPU的存在推迟到运行时间而不是构建时间?


你能在你的 CI 服务器上尝试运行 docker pull nvidia/cuda:11.0-base 吗? - anlgrses
这似乎不是GPU问题,您可以通过执行 docker info 来检查CI服务器上是否配置了任何镜像。 GPU服务器可能配置了不同的镜像。 - Palash Bansal
1个回答

1
看起来您可能需要加载nvidia组件,可能包括任何专有的二进制文件和内核模块。如果这些模块不存在,那么就会出现编译错误(缺少依赖项)。
但是从https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html 这个网站上看,驱动程序在加载时正在寻找硬件,这可能是为什么在尝试编译时它们不可用的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接