システム:Ubuntu 16.04
ディスプレイマネージャー:lightdm
GUIアプリケーションが実行されているDockerコンテナFROM ubuntu:latest
を作成しようとしています。内部で使用されるコマンドにアクセスするには、アプリケーションをSudoで実行する必要があります。 this Blogの指示に従い、使用に合わせて調整しました。
このコンテナをビルドした後、最初に実行しました:
docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix repo-test-3 /bin/bash
それから
./application
アプリケーションが画面に表示されます。
次に、同じコンテナを-u 0
で実行してルートにしようとしましたが、アプリケーションを起動しようとすると、次のエラーメッセージが表示されます。
No protocol specified
QXcbConnection: Could not connect to display :0
Aborted (core dumped)
何が問題なのか、どうすれば修正できるのかご存知ですか?
解決策は次のとおりです。
DockerにX-Serverにアクセスする権限を与えます:
xhost +local:docker