X Forwarding
Prerequisites
Before starting this tutorial, we recommend:
Familiarity with using the terminal
Introduction
X forwarding is what will let you display GUIs (graphical user interfaces) on your machine that are being run from your Docker container. You need to install an X client, set up the appropriate firewall rules, then tell Docker to forward its display to your client.
Instructions by OS
X forwarding configuration varies by machine, so follow the steps that match your operating system. If you run into any issues or don't have a supported OS, reach out in the comments below.
Windows 10 / 11
X Client Set Up
There are several options available here. VcXsrv has been tested to work with the ARC development environment and is available on SourceForge. VcXsrv is the recommended client.
If you install VcXsrv, launch it with the XLaunch.exe
executable, not VcXsrv.exe
. When you launch it for the first time, you will see several configuration pages. You may leave them all at the default: multiple windows, no clients.
Windows Firewall Setup
When you first launch your X client, you should see Windows Firwall pop up. Go ahead with the default settings.
Now that everything is blocked, we need to put in an exception so that our WSL2 instance is able to access the X client.
These instructions are taken from a Reddit post
Launch Windows Firewall. Simply search "Firewall" in the Start Menu
Go ahead and save and close everything. You may need to reboot your X client.
WSL2 Setup
We will need to edit a file called the bashrc
. This is a script that is run every time you open a new terminal in order to set up your environment. Modify it by copy and pasting the below command in exactly. Run these commands in WLS2, not Powershell or Windows Commandline. From now on, all commands to be listed like this should be put into the WSL2 commandline.
Since we just changed our bashrc
, we need to run the below command for the changes to take effect in our current terminal:
Testing
You will need to download a small program called xeyes
in order to test the X forwarding. It can be installed and run with the following commands:
You'll see a little pair of eyes follow your cursor around. You can X out of it or hit CTRL+C
in order to kill the program.
Mac
X Client Set Up
The most widely used X client for Mac is X Quartz. You can install it here.
Configure X Quartz
You need to first allow connections from network clients:
Now run the following command to allow localhost access on startup:
After running the above command, restart your system.
Errors with running X Quartx
If you have errors while completing the above steps, take a look at the following trouble shooting guide.
Testing
You will need to download a small program called xeyes
in order to test the X forwarding. It can be installed and run with the following commands:
You'll see a little pair of eyes follow your cursor around. You can X out of it or hit CTRL+C
in order to kill the program.