web-dev-qa-db-ja.com

sudoを使用してDocker ContainerでGUIアプリケーションを起動する

システム: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)

何が問題なのか、どうすれば修正できるのかご存知ですか?

1

解決策は次のとおりです。

DockerにX-Serverにアクセスする権限を与えます:

xhost +local:docker
1