容器部署

容器部署#

Docker 是一个工具,允许创建容器,这些容器是可以用来运行应用程序的隔离环境。它们对于确保应用程序能够在安装了 Docker 的任何机器上运行非常有用,而不受主机操作系统或已安装库的影响。

我们包含了一个 Dockerfile 和 docker-compose.yaml 文件,可以用来构建一个包含 Isaac Lab 和所有依赖项的 Docker 镜像。然后可以使用该镜像在容器中运行 Isaac Lab。Dockerfile 基于 NVIDIA 提供的 Isaac Sim 镜像,其中包括 Omniverse 应用程序启动器和 Isaac Sim 应用程序。Dockerfile 在该镜像的基础上安装了 Isaac Lab 及其依赖项。

克隆仓库#

在构建容器之前,克隆 Isaac Lab 仓库(如果尚未完成):

git clone git@github.com:isaac-sim/IsaacLab.git
git clone https://github.com/isaac-sim/IsaacLab.git

下一步#

克隆后,您可以选择适合您需求的部署工作流程:

  • Docker 指南

    • 学习如何在 Docker 容器中构建、配置和运行 Isaac Lab。

    • 解释了仓库的 docker/ 设置, container.py 辅助脚本,挂载卷,镜像扩展(如 ROS 2),以及可选的 CloudXR 流支持。

    • 涵盖了在 NVIDIA NGC 上运行预构建的 Isaac Lab 容器用于无头训练。

  • 使用 Docker 运行示例

    • 学习如何在 Isaac Lab Docker 容器中运行开发工作流程。

    • 演示了构建容器,进入容器,执行示例 Python 脚本 (log_time.py),并使用挂载卷检索日志的过程。

    • 重点介绍用于实时代码编辑的绑定挂载目录,并解释了如何停止或移除容器而保留镜像和产物。

  • 集群指南

    • 学习如何在高性能计算(HPC)集群上运行 Isaac Lab。

    • 解释了如何将 Docker 镜像导出为 Singularity(Apptainer)镜像,配置集群特定参数,并使用常见工作负载管理器(SLURM 或 PBS)提交作业。

    • 包括针对 ETH Zurich 的 Euler 集群和 IIT Genoa 的 Franklin 集群进行测试的工作流程,同时提供了适应其他环境的注意事项。

  • 在 Kubernetes 上部署 CloudXR 远程操作

    • 在 Kubernetes 集群上为 Isaac Lab 部署 CloudXR 远程操作。

    • 涵盖了系统要求、软件依赖和准备步骤,包括 RBAC 权限。

    • 演示了如何安装和验证 Helm 图表,运行 pod,并卸载它。