原文: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
Bean Young
文件说明:
buildDocker
.sh:用于构建vtd镜像的脚本
runDocker
.sh:用于运行vtd容器
Dockerfile:用于构建vtd镜像模板文件
Add Comment