なんだかやけに長い説明ばかり検索に引っかかったので書きました。
Linuxのローカル環境でDockerコンテナ内のXアプリ(GUIアプリ)を利用するには
$ xhost localhost +
を実行した後に
$ docker run --rm --net host -e "DISPLAY" container_image_name x_app_binary_path
とすれば良いです。
–rmを付けているのでXアプリ終了後にコンテナを残したい場合は消すのを忘れないように。Xアプリを直接起動していますが、bashなどのシェルからXアプリを起動してもOKです。コンテナ内のrootで起動してしまいます。本格的に利用するならsuidでユーザーIDを変えるか起動シェルスクリプトを作ってsuでユーザーを変えて起動する方が良いでしょう。
xhostコマンドでローカルホストの他のユーザーからもXアプリを使えるようにし、dockerの–net hostでホストマシンのネットワークをそのまま使えるようにし、-eオプションでホストのDISPLAY環境変数をコンテナに渡しています。