I’m using docker to start multiple isaac sim container in one machine, trying to mapping different host port to the docker port. But it didn’t work, here is a few question :
what ports do I need to map ? In the official doc it 's 8211 which used to connect the streaming client ,and I found another port is 8899, which is hard-coded in the client’s file. However, when I start the docker I can see that docker maps several ranges of ports, are all these ports used ? Do I need to map them to different host port as well?
the client’s html file has hard-coded the web-socket port to 8899. Does that mean I must modify the client’s source code to connect to a different port ?
Hi. The default port for the html server is 8211. You can run another instance of Isaac Sim with a different port using this flag --/exts/omni.services.transport.server.http/port=8311. Technically, you can run another browser tab and connect to 8311 but currently we are seeing some issues.
thanks for your reply. I managed to solve this problem by redirecting 8899 and 8211 port to different host port , using docker cli -p flags.
It turned out that the streaming client is only using 8899 port to transfer visual data. And 8211 port is just used for getting the streaming client files. So I cloned the streaming files ( html, js ,css …) into my local machine, and modified the hard-coded request url to a dynamic one, which can be changed according to the given parameters. Then I can connect different isaac-sim in one server machine.
This solution may need some coding work.
have you met the issue that nucleus server not correctly config ?
when I run tow container with different port I occurs;
but when I just run one container with ‘–network host’ command params , nucleus server is correct.
just like this; the issacsim container can not find nulceus server if I run it using the command " sudo docker run --entrypoint ./runheadless.websocket.sh --gpus ‘“device=0”’ -e “ACCEPT_EULA=Y” -p 8899:8899 -p 8211:8211 nvcr.io/nvidia/isaac-sim:2021.1.1" , but if I use “sudo docker run --entrypoint ./runheadless.websocket.sh --gpus ‘“device=0”’ -e “ACCEPT_EULA=Y” --network=host nvcr.io/nvidia/isaac-sim:2021.1.1” , It works well
the default docker network type is bridge mode. So maybe there’s connection problem in bridge mode. I’m working with isaac locally, so I didn’t care much about the server warning.
You can now change the WebSocket port 8899 with a flag in Isaac Sim 2021.2.1. Please see: https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_faq.html#change-websocket-ports
This will allow running multiple containers of Isaac Sim on an instance. However, you can only have one running Nucleus on an instance. I would recommend using a separate dedicated instance/machine for Nucleus and have each container accessing that one remote Nucleus.