Docker コンテナーから X11 GUI アプリケーションをリモートクライアントの X サーバーで表示させる方法
この記事のまとめ:
- X11 の GUI アプリケーションを Docker コンテナーで起動し、SSH で接続するリモートホストに表示する方法を記載しています。
背景
たまに X11 GUI アプリケーションを Docker コンテナー内で動かしたいときがあって、リモートクライアントの X11 サーバーに GUI を飛ばす方法を調べてみました。
X Windows System
Linux の GUI 環境は X Windows System ver.11 (X11) のプロトコルで動いており、サーバー・クライアントシステムとして動いています。X クライアントが X サーバーに通信して、X サーバーはグラフィカルな出力をしたり、ユーザーの入力をクライアントに送信したりします。通信はネットワーク越しに行うことができますのでリモートホストの X サーバーに出力したりすることもできます。
今回の場合は、Docker コンテナーが X クライアントであり、リモートクライアント側で起動している X サーバーに出力するということになります(ややこしいですが)。例えばこんなイメージです。
設定方法
設定は至って簡単です。
とりあえず、X アプリケーションを動かすコンテナーの Dockerfile を作ります。
docker-compose を使いますが、設定することはただ一つで、環境変数として DISPLAY
にリモートクライアントの IP アドレスとディスプレイ番号を示す :0
を入力するだけです。
念のためですが、下記のコマンドでコンテナーが起動します。
ただし、基本的にはリモートクライアント側の X サーバーが外部からの通信を許可する設定が必要になります。Linux の場合は xhost
コマンドで設定します。Windows の場合には Windows Firewall で設定します。
もう少し詳しく知りたいという方は下記の記事が参考になると思います。
参考記事
今回は以上です。 最後まで読んでいただき、ありがとうございます。
コメント
コメントを投稿