
答え1
パフォーマンスについては何も言えませんが、この問題の調査中に次の質問と回答を見つけました。DockerでGUIアプリケーションを実行できますか?これを達成する3つの方法を示します。
VNC経由でAppXを実行する
このメソッドは、次のDockerfileを使用して表示されます。
# Firefox over VNC # # VERSION 0.1 # DOCKER-VERSION 0.2 from ubuntu:12.04 # make sure the package repository is up to date run echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list run apt-get update # Install vnc, xvfb in order to create a 'fake' display and firefox run apt-get install -y x11vnc xvfb firefox run mkdir /.vnc # Setup a password run x11vnc -storepasswd 1234 ~/.vnc/passwd # Autostart firefox (might not be the best way to do it, but it does the trick) run bash -c 'echo "firefox" >> /.bashrc'
次に、Dockerインスタンスを次のように実行します。
$ docker run -p 5900 creack/firefox-vnc x11vnc -forever -usepw -create
Docker+サブユーザーの使用
Subuser + Dockerを使用すると、単一のアプリケーションのみを含むDocker VMを直接実行して、物理ホスト上の特定のフォルダへの狭いアクセス権を付与できます。
Subuserはインストールが簡単に設計されており、それ自体は技術的に重要ではありません。これはdockerのラッパーに過ぎず、それ以上ではありません。
サブユーザーはDockerコンテナを起動し、ホストとサブコンテナ間でボリュームを共有します。それはすべてです。
これはSubuserの動作を示すビデオ。
SSH経由でX11を実行する
最後の手法は、X11+SSH サービスを実行する Docker インスタンスを設定する方法を示しています。これにより、この設定により、すべてのX11アプリケーションがSSH経由でトンネリングできます。
sshはX11を配信するために使用され、Dockerコンテナとローカルシステム間の暗号化されたデータ通信を提供します。
その後、この方法はXpra + Xepyrをローカルに設定するプロセスを続行します。
XPula+サフィールセッション回復機能を使用して、Firefox、LibreOffice、xtermなどのコンテナ内で実行されているアプリケーションを表示できます。これにより、接続が切断されてもアプリケーションの状態を失うことなく、どこからでもデスクトップを開くことができます。
Xpraはまた、自己調整され、比較的待ち時間に敏感でないカスタムプロトコルを使用しているため、標準Xよりも悪いリンクで使用できます。
クライアントコンピュータが表示されたウィンドウを管理できるように、アプリケーションにはルートがない可能性があります。