Docker

Introduction

This page provides the information needed for system administrators wanting to set up Docker Deployments. Please read this page in it’s entirety prior to attempting to set up a Docker stack.

Warning

Important

Please note that Nucleus is still in Beta. Flaws in authentication, security and data loss are possible. We reccomenend using Nucleus for evaluation purposes and on prem only at this time. As we move towards release, we will update this notice. As per EULA, no cloud services to 3rd parties are allowed at this time.

General Notes

System Requirements

NVIDIA Omniverse™ Nucleus stack does not require anything special - it’s a simple CPU/RAM/disk workload.

Here’s what we recommend as the minimum baseline:

  • 6+ reasonable cores

  • 16+ GB of RAM

  • SSD type disk if any kind of load is expected

  • If you don’t know how much disk space to allocate, start with 50 gigs and observe usage, adding diskspace as required

In reality, of course, resource usage will highly depend on load.

Ultimately, we recommend monitoring the installation, and adding resources as required.

Registering and Access

Omniverse Containers are available to members of Omniverse Early Access Program.

To register, please proceed to EAP Registration on developer.nvidia.com and follow the steps on the page to join the NVIDIA Developer Program and then submit your application to the Omniverse Early Access Program.

You will receive a notification email for joining the NVIDIA Developer Program and once your application to the EAP is approved, you will receive a notification email with further instructions.

Docker Compose Stacks

Each compose “setup” has two parts to it - .yml (which is the actual compose file) and .env (which contains most common settings for the compose file).

Trying to keep our documentation as close to the code as possible, the bulk of information necessary to successfully deploy a stack is contained in the .env file. Please make sure to read comments located inside the .env file, and make sure you understand them completely. That’s where the actual documentation lives. Not doing so is virtually guaranteed to arrive at a broken deployment.

Note: these compose files are designed for docker-compose setups, and will not run on Swarms, though they can be easily adopted to run there.

Just a quick reminder on starting a docker-compose setup:

docker-compose --env-file <.env file path> -f <.yml file path> up

Add -d option to ‘daemonize’ your stack.

Errors on Startup

If you see errors in the log spew on startup of a stack, your first reaction should be giving it time. If you see crashing and restarting containers, you should do the same.

These errors happen because Docker launches everything at the same time, and some services in a stack depend on other services. So, for example, if Authentication Service happens to come up before it’s dependency - Discovery Service - it will fail, crash (and be happily restarted by Docker).

Only after you’ve given it enough time (a good 5 minutes), and your state is somewhat of a “stable crashloop” of some services, investigation is warranted.

Firewalls

We do not run firewalls on our Docker hosts. We have observed in-the-field situations where enabled firewalls (ie, ufw) caused problems (services not being accessible, crashloops of some services, etc).

Verifying Nucleus is Up

When everything “settles in” and is running stable (containers not restarting), first thing you should do is direct your web browser to the IP address or hostname of a machine you have deployed it to, and attempt to log into the Navigator (Web UI). If you see that Web UI, you can be 99.9% certain that everything is perfectly fine. If you want to be 100% sure, using the Navigator, upload a >256KB file, and immediately download it.

Note to Workstation users: we have had confusions in the field with folks coming “off of” Workstation style Omniverse Nucleus setups to these Docker setups, not realizing a few things:

  • Omniverse Navigator runs on port 80 with Docker (so no need to do my.ip.he.re:8080 when accessing it with a browser).

  • There is no System Monitor - which is purely a Workstation entity to manage your services. On a Docker Server, you got the full power of Docker to do the same thing.

Open Ports

All ports that will be opened by Nucleus are configurable (and suggested defaults provided) in the .env files. Don’t forget about Client Assumptions when considering changing default values.

Stack Releases, Notes, and Downloads

Nucleus Core

Release Notes