[Solution] How to run Isaac Sim on Ubuntu desktop environment using Docker container instead of WebSocket

Hi~ Good day!

I succeeded to run Isaac Sim on Ubuntu desktop environment using Docker container instead of WebSocket

Before doing it, you should install the normal install procedure using Docker container, summarized here, but you can refer also the official site.

Isaac Sim installation using Docker container
After the Docker image of Ubuntu 18.04 Isaac Sim is downloaded and executed as an Docker instance, do the following things. See the detail in the official site.

  1. starting container using permanent writing option (–restart unless-stopped) in order to the modification inside of the container instance retained after stopping of the instance unlike the script in the official site.
    sudo docker run --name isaac-sim --entrypoint bash -it --gpus all -e “ACCEPT_EULA=Y” --restart unless-stopped --network=host \
    -v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
    -v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
    -v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
    -v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
    -v ~/docker/isaac-sim/config:/root/.nvidia-omniverse/config:rw \
    -v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
    -v ~/docker/isaac-sim/documents:/root/Documents:rw \
    nvcr.io/nvidia/isaac-sim:2021.2.1

  2. Inside of the container, fix a bug on Nucleus server setup
    sed -i ‘s|“options”: "{\“timeout\”: 600, \“host\”:\“ov-isaac.s3.us-west-1.amazonaws.com\”,\“service\”:\“s3\”,\“secure\”:false,\“redirection\”:\"http://dpcil1p2xgdf8.cloudfront.net/\\“}”,|“options”: “{\“timeout\”: 600, \“host\”:\“d28dzv1nop4bat.cloudfront.net\”,\“service\”:\“s3\”,\“secure\”:false,\“redirection\”:\“https://d28dzv1nop4bat.cloudfront.net\”}”,|’ /isaac-sim/installers/nucleus/Nucleus/omni.server.app.config.json

  3. Install Isaac Sim, and run Nucleus server at the last line
    cp /isaac-sim/installers/omniverse.toml ~/.nvidia-omniverse/config/omniverse.toml
    installers/cache/setup/cache-setup -i
    installers/nucleus/setup/nucleus-setup -i
    installers/nucleus/System\ Monitor/omni-system-monitor &

‘Listen’ appears at the last line.

Hit enter key to see the shell prompt

  1. Connect to Nucleus with ‘admin’ password
    http://<ip_address_of_host>:8080
    or
    http://localhost:8080

Several folders should be shown.

  1. Run Isaac Sim by WebSocket method to check it works well.
    ./isaac-sim.headless.websocket.sh --allow-root

Only ‘carb’ related warning and errors should be displayed. They can be ignored.
Several minutes can be taken for the first start.
The last two line should be shown:
app started
Isaac Sim App is loaded.

  1. Display Isaac Sim on a Chrome web browser (not Firefox) and press play button
    http://<ip_address_of_instance>:8211/streaming/client
    or
    http://localhost:8211/streaming/client

  2. Test an Isaac Example on the menu, for example Robot Party.
    Press Load button and wait for a while to see robots and blue colored floor,
    and press start button to move the robots. but currently robots do not move well because of the Nvidia site problem maybe.

  3. Exit Isaac Sim and Container.
    But the installation is remained on the stopped container instance because the container was started with such option.

Run Isaac Sim on Ubuntu desktop Environment
After Isaac Sim is displayed well on the browser by WebSocket connection, do the following things to run Isaac Sim on Ubuntu desktop environment.

  1. before starting container, enable remote X window
    xhost +

  2. starting container with X window option (-e and X11-unix options)
    sudo docker run --name isaac-sim --entrypoint bash -it --gpus all -e “ACCEPT_EULA=Y” --restart unless-stopped --network=host \
    -v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
    -v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
    -v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
    -v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
    -v ~/docker/isaac-sim/config:/root/.nvidia-omniverse/config:rw \
    -v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
    -v ~/docker/isaac-sim/documents:/root/Documents:rw \
    -e DISPLAY=$DISPLAY \
    -v “/tmp/.X11-unix:/tmp/.X11-unix:rw” \
    nvcr.io/nvidia/isaac-sim:2021.2.1

  3. Start the Nucleus server
    installers/nucleus/System\ Monitor/omni-system-monitor &

In some case, if you want to stop the Nucleus server for some need:
./stop_nucleus.sh

  1. Connect to Nucleus with ‘admin’ password (this step may be skipped)
    http://<ip_address_of_host>:8080
    or
    http://localhost:8080

Several folders should be shown.

  1. after starting container, start Isaac Sim on desktop environment
    ./runapp.sh

Remaining Problems
To follow the Isaac Sim tutorials, Visual Studio Code should be installed inside of the container. And some root account related execution problem happens.

AWS EC2 Usage
If you want to run the container on AWS EC2 instance, DCV program should be installed and used for remote desktop function, which is provided for free by AWS because the usual Ubuntu remote desktop programs like Xrdp, tightVNC and etc. make many problems in the installing of it and the running of Isaac Sim on AWS as like my trials and struggles. DCV can be installed by user own according to descripton, or pre-installed by third party company service like Rescale Xscale or AWS partner companies.