This software has a GUI, which in Docker is a bit trickier to run than a simple CLI. Below are our instructions based on this site
Running this container on Windows requires PowerShell, and now WSL. As a result, the container will not be able to see your file system natively.
Because Windows does not natively support X11 functionality, you will require a third-party program to launch the GUI. As stated in the article above, we used VcXsrv, which required minimal setup to work in our environment.
If you are using the same program, once installed, launch XLaunch, and configure it as seen in the site:
, souced from the above site. This program must be running, which it does in the background, for the GUI to work.
Since Windows is not a Unix-based system, the container will not be able to see the file system natively, like it can on Mac or Linux operating systems. Therefore, you will need to add a mount flag to it, which we will show below. One quirk is that, becuase Windows allows spaces in the directory names, we found it much simpler to save the directory we wanted as a variable to pass to Docker.
Example:
$imageDir="C:\Users\User Name\My Images"
You will also require your local IP address, which is easy enough to obtain with the ipconfig
command. As above, we would recommend saving this to a variable, so it does not show up in logs, but this is not as necessary.
Finally, we are ready to run the program. Assuming you ahve set things up like above, the basic command to run it is:
docker run -ti --rm -v ${readFile}:/src/temp -e DISPLAY=${ipAddress}:0.0 jennyzouutsw/utrack2018b:1.0.0 bash /execute/utrack/run_utrack.sh /opt/mcr/v95
This is a bit simpler than Windows, however, still requires one piece of external software to function.
As stated in the article, this can be installed either using the command line:
brew cask install xQuartz
or by downloading the DMG file here. Once installed, you will need to open the settings, go to the 'Security' section, and ensure it is setup like this:
As with VcXsrv, this program must be running in the background before you can launch the GUI.
Again, as with Windows, you will require your local IP Address, obtained with the command ifconfig
. Once you have that, you must add it to the xhost list:
xhost + 192.168.X.X
As before, we would also recommend saving it into a varible to prevent it from being logged when you run the command.
Because Mac is a Unix-style OS, the image should be able to directly access your file system without further issue. If you are having trouble, a setup similar to the Windows file system setup might be required. Otherwise, the run command is very similar:
docker run -ti --rm -e DISPLAY=${ipAddress}:0.0 jennyzouutsw/utrack2018b:1.0.0 bash /execute/utrack/run_utrack.sh /opt/mcr/v95
This is the container's native environment, so no other setup is really required for most distributions (we have tested specifically on CentOS and Ubuntu style distributions).
docker run -ti --rm jennyzouutsw/utrack2018b:1.0.0 bash /execute/utrack/run_utrack.sh /opt/mcr/v95