Docker 容器的开发标签和运行时标签有什么区别?

BLP*_*BLP 19 runtime docker

对于 Pytorch 和 Tensorflow,有区分开发和运行时的标签,我不太确定这两者之间有什么区别,有人可以帮助我更好地理解吗?

小智 25

nvidia-docker复制:

CUDA 映像有三种风格,可通过 NVIDIA 公共中心存储库获得。

  • base:从 CUDA 9.0 开始,包含用于部署预构建 CUDA 应用程序的最低要求 (libcudart)。如果要手动选择要安装的 CUDA 软件包,请使用此映像。
  • runtime:通过添加 CUDA 工具包中的所有共享库来扩展基本映像。如果您有一个使用多个 CUDA 库的预构建应用程序,请使用此图像。
  • devel:通过添加编译器工具链、调试工具、头文件和静态库来扩展运行时映像。使用此映像从源代码编译 CUDA 应用程序。

  • 只是为了将其放在上下文中,我想如果您想使用“TensorRT”功能,您需要“devel”。然后,您不需要自己编译应用程序,而是库会为您完成这些工作。如果有人能证实这个想法,我将不胜感激。 (2认同)

小智 5

基本上,开发容器具有编译您自己的基于 CUDA 的应用程序所需的所有堆栈,包括标头、静态文件等。最终结果是拥有一个更大的图像,但也是一个允许编译的图像。在编译您的应用程序/任何其他 CUDA 应用程序后,基础/运行时容器具有解决运行时依赖性的最低限度。类似于开发包和运行时包的工作方式。