Containers are not usually associated with GUI applications,
but there may be times when one might still want to run such
a program inside a container, for example to isolate the
application’s dependencies. Installing a GUI application
in a container means that not only the application, but also
all its specific dependencies are encapsulated inside the
container (respectively, the container image), and can therefore
reliably be removed from the system in a single step.
The primary challenge is to let a container communicate with
the host’s display system, so that it can create GUI windows
on the host. A GUI application will likely also need to share
files with the host system, which in turn requires the appropriate
user permissions.