Dockerfile

1
2
FROM debian:buster-slim
RUN apt update && apt install -y x11-apps

ビルドします

1
$ docker build -t gui_test

実行(Linuxの場合)

1
$ docker run -ti --rm -u $(id -u):$(id -g) -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix gui_test xclock

実行(Macの場合)

  • XQuartzをインストール
  • XQuartzを起動して「環境設定」→「セキュリティ」
  • 接続を認証→チェックをはずす
  • ネットワークからの接続を許可→チェックをいれる
  • 再起動
  • XQuartzを起動
  • export DISPLAY=host.docker.internal:0.0を実行(もしくは.bashrcなどに追記)
  • 「実行(Linuxの場合)」のコマンドで実行

実行(Windows+Virtualboxの場合)

  • Xmingをインストール
  • ターミナル(MSYS2など)で、export DISPLAY=localhost:0.0 ※1
  • Vagrantfileに、config.ssh.forward_x11 = trueを追加
  • vagrant up
  • vagrant ssh-configか、.ssh/configForwardX11 yesがあるか確認
  • sshでログイン
  • ログイン後に、export DISPLAY=localhost:0.0 ※2
  • 「実行(Linuxの場合)」のコマンドで実行

(※1) 一般的にはlocalhostと書いてある記事が多かったですが、自分の場合はホストオンリーネットワークのGatewayアドレスでした 192.168.56.1
(※2) ※1で実行していますが、ログイン後にecho $DISPLAYしても何もセットされていなかったので、ログイン後の.bash_profileに追記して解決しました