使用您自己的容器#
当您创建一个新的 AI Workbench 项目 时,您通常从 NVIDIA NGC 目录 中选择 NVIDIA 提供的容器环境之一。
当您想要创建一个完全自定义的容器,用于您自己的项目,或者您可以发布并与其他 AI Workbench 用户共享时,请使用此文档。这是一个高级场景。有关引导您完成此过程的文档,请参阅高级演练:使用您自己的容器。
使用此文档了解以下内容
为 AI Workbench 创建完全自定义的容器#
要创建完全自定义的容器以用作 AI Workbench 项目的容器环境,您需要构建并公开镜像的元数据,方法是为您的镜像创建 Docker 标签。
警告
在为 AI Workbench 创建自定义容器之前,请了解您要使用的容器的要求。
一个镜像可以有多个标签,但是标签中的每个键都必须是唯一的。父镜像中的标签会被继承,但可以在子镜像中被覆盖。有关更多信息,请参阅Docker 对象标签。
为了能够解析标签键和值,同时避免意外覆盖值,定义了严格的标签模式约定。约定是 <domain-name>.<spec-field>
,其中 domain-name
是 com.nvidia.workbench,spec-field
是容器环境规范的字段名称。例如
com.nvidia.workbench.programming_languages
作为镜像创建者,您有责任从父镜像中收集所需信息,并在定义这些标签时累积和附加来自父镜像的信息。com.nvidia.workbench.image-version
标签中定义的字符串用于将多个镜像从最新到最旧排序。这些字符串表示镜像的语义版本,用于在 UI/CLI 中排序和排列镜像版本。如果未指定此标签,则镜像标签将按字符串排序以确定显示顺序。
在将标签应用于镜像后,您可以将其发布到支持的容器注册表中。发布镜像后,您可以创建一个新项目,并在自定义容器选项卡上指定您的镜像。
自定义容器标签参考#
使用下表中的信息为您的自定义容器镜像创建 Docker 标签。有关每个字段的描述,请参阅AI Workbench 项目规范定义。
建议的 Docker 标签 |
示例用法 |
---|---|
com.nvidia.workbench.build-timestamp |
|
com.nvidia.workbench.name |
|
com.nvidia.workbench.cuda-version |
|
com.nvidia.workbench.description |
|
com.nvidia.workbench.entrypoint-script |
|
com.nvidia.workbench.labels |
|
com.nvidia.workbench.programming-languages |
|
com.nvidia.workbench.icon-url |
|
com.nvidia.workbench.image-version |
|
com.nvidia.workbench.os |
|
com.nvidia.workbench.os-distro |
|
com.nvidia.workbench.os-distro-release |
|
com.nvidia.workbench.schema-version |
|
com.nvidia.workbench.user.uid |
|
com.nvidia.workbench.user.gid |
|
com.nvidia.workbench.user.username |
|
com.nvidia.workbench.package-manager.<package-manager-name>.binary |
|
com.nvidia.workbench.package-manager.<package-manager>.installed-packages |
|
com.nvidia.workbench.package-manager-environment.type |
|
com.nvidia.workbench.package-manager-environment.target |
|
com.nvidia.workbench.application.<application-name>.type |
|
com.nvidia.workbench.application.<application-name>.class |
|
com.nvidia.workbench.application.<application-name>.start-cmd |
|
com.nvidia.workbench.application.<application-name>.health-check-cmd |
|
com.nvidia.workbench.application.<application-name>.timeout-seconds |
|
com.nvidia.workbench.application.<application-name>.stop-command |
|
com.nvidia.workbench.application.<application-name>.user-msg |
|
com.nvidia.workbench.application.<application-name>.icon-url |
|
com.nvidia.workbench.application.<application-name>.webapp.autolaunch |
|
com.nvidia.workbench.application.<application-name>.webapp.port |
|
com.nvidia.workbench.application.<application-name>.webapp.proxy.trim-prefix |
|
com.nvidia.workbench.application.<application-name>.webapp.url |
|
com.nvidia.workbench.application.<application-name>.webapp.url-cmd |
|
com.nvidia.workbench.application.<application-name>.process.wait-until-finished |
|