12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DockerでGUI ①ホストがUnixの場合

Posted at

はじめに

これまで,DockerでGUIを使う方法としてContainer内でVNCサーバを立ち上げる方法が使っていましたが,やはり使い勝手が悪いです.
X Window関連のテクニックを使うことでContainer内のwindowをホスト側で描画できることは知っていたのですが,なんとなく面倒そうだったので使ってきませんでしたが,意外と簡単に出来たのでメモしておきます.

ここではホスト(手元でGUIを操作できる端末)がUnix (Ubuntu)の場合です
開発用なのでセキュリティは気にしません

ホスト側の準備

下記のコマンドでX Windowサーバが,Container内からの接続を受け入れるように設定します.ユーザ権限で構いません.

$ xhost local:

セキュリティ的にはあまりよろしくないらしい.取り消す場合は

$ xhost -local:

現在の設定状況は以下で確認できます.

$ xhost

コンテナの起動

起動時にマウントオプションと環境変数を渡します

-v /tmp/X11-unix:/tmp/X11-unix:rw -e DISPLAY=$DISPLAY

例えば

docker run -it -v /tmp/X11-unix:/tmp/X11-unix:rw -e DISPLAY=$DISPLAY ubuntu bash

これだけで例えばmatplotlibのGUIが表示できたりします.sshなどの新たなパッケージを導入する必要がないのでうれしいです.

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?