Page tree
Skip to end of metadata
Go to start of metadata

原文:https://redmine.vires.com/projects/vtd/wiki/Dockerization_of_VTD

Docker示例概述

vtd.run.control

这个示例代表VTD的“Run.Control”配置,它能够执行仿真,但是不涉及图像生成。即使在容器外部,也可以通过暴露的普通RDB端口48190观察仿真的状态。
这个示例使用给定的设置和项目组合来启动一个定义的场景。
你可以在docker示例的data目录中的executeVTD.sh脚本中配置项目、设置和场景。

如果你使用启动脚本“runDocker.sh”来启动容器,将会完成以下事情:

  • 容器使用你的许可证文件中定义的mac地址启动(更多内容参见“使用方法”章节)
  • 普通的RDB端口48190将暴露在容器外部
  • 在启动容器时,脚本“executeVTD.sh”正在被启动
  • 定义的场景将被加载,然后自动启动
  • 正在运行的容器的/tmp目录中的日志文件将被挂载至宿主机的/tmp目录
  • 容器的执行不会自动停止,因为在这个示例中不会涉及自动化

vtd.run.perception

这个示例代表VTD的“Run.Perception”配置,它能够执行仿真,甚至涉及图像生成。可以通过在宿主机的“/tmp”中的特定目录下创建图片来观察图像生成的结果。
这个示例使用给定的设置和项目组合来启动一个定义的场景。
你可以在docker示例的data目录中的executeVTD.sh脚本中配置项目、设置和场景。

如果你使用启动脚本“runDocker.sh”来启动容器,将会完成以下事情:

  • 容器使用你的许可证文件中定义的mac地址启动(更多内容参见“使用方法”章节)
  • 在容器内,将执行启动脚本“executeVTD.sh”
  • 定义的场景将被加载,然后自动启动
  • 正在运行的容器的/tmp目录中的快照将被挂载至宿主机的/tmp目录
  • 容器的执行不会自动停止,因为在这个示例中不会涉及自动化

vtd.groundtruth

示例“vtd.groundtruth”是更加自动化的示例,使用VtdApi中的“ExampleGroundTruth”示例。在其他的docker示例中,VTD是直接启动的,而在本例中,“ExampleGroundTruth ”被启动了,然后它会接管VTD自身的控制。它会启动/停止VTD和仿真,根据其配置文件中的配置改变设置、项目和场景。
在docker示例的data/opt/ExampleGroundTruth目录中,你可以找到ExampleGroundTruth应用的TestBase.xml配置文件。

如果你使用启动脚本“runDocker.sh”来启动容器,将会完成以下事情:

  • 容器使用你的许可证文件中定义的mac地址启动(更多内容参见“使用方法”章节)
  • 在容器内,将执行启动脚本“executeGroundTruthSample1.sh
  • 正在运行的容器的/tmp目录中的已创建的目录和文件将被挂载至宿主机的/tmp目录
  • 一旦所有的配置场景都已执行完成,自动化就会停止。

前提条件

需要有效的VTD许可证。根据你的MAC地址,你必须改变或删除已配置的地址。更多内容参见本文的“准备”章节。

  • 已安装Docker,并且有一个已启用docker的用户(参见下一个章节)
  • 用户指定的位置要有20GB的空闲空间
  • /var要有20GB的空闲空间
  • 已安装NVIDIA显卡,并且已安装原始的NVIDIA驱动程序

以非root用户管理docker

  • 运行“sudo groupadd docker”命令,创建docker用户组
  • 运行“sudo usermod -aG docker $USER”命令,将你的用户添加至docker用户组
  • 退出并重新登录,以便重新评估你的用户组成员资格

使用方法

从已有的安装创建docker软件包

  • [VTD]/Runtime/Tools/Docker/中,进入所需的docker示例目录
  • 使用以下命令来创建docker软件包:

    > ./CreateDockerPackage.sh /[TARGET_PATH]

准备和运行docker容器

  • 进入先前的“CreateDockerPackage.sh”命令中的[TARGET_PATH]目录
  • 如果你有一个只对特定MAC地址有效的VTD许可证,你必须为容器配置它,否则就完全删除“--mac-address”行。
    在“runDocker.sh”中:用你的许可证文件的MAC地址来替换假的MAC地址“18:31:bf:cc:8e:54”,如果你的许可证不依赖MAC地址,则删除整行。

    --mac-address 18:31:bf:cc:8e:54 \
  • 在“Dockerfile”中:将“NVIDIA_VERSION=390.116”替换成你的宿主机的驱动程序版本。这一步只对支持图像生成的容器有必要,如GroundTruth或Run.Perception。

    ARG NVIDIA_VERSION=390.129
  • 以启用docker的用户身份构建docker容器(推送时使用root)

    > ./buildDocker.sh


  • 以启用docker的用户身份运行docker容器(推送时使用root):

    > ./runDocker.sh


1 Comment

  1. 文件说明:

    • CreateDockerPackage.sh:创建vtd的tgz打包文件,需要提供存储路径作为参数
    • buildDocker.sh:用于构建vtd镜像的脚本
    • runDocker.sh:用于运行vtd容器
    • Dockerfile:用于构建vtd镜像模板文件
Write a comment...