web-dev-qa-db-fra.com

Utiliser le transfert X pour le serveur SSH dans le conteneur Docker

J'essaie d'utiliser le transfert X via SSH pour exécuter des applications graphiques installées dans un conteneur Docker basé sur Ubuntu, mais le transfert X n'est pas appliqué même si j'ai installé xauth avec X11Forwarding yes dans/etc/ssh/sshd_config. ($DISPLAY n'est pas défini.)
J'ai essayé d'utiliser le transfert X pour de vrais ordinateurs avec la même configuration, et cela a bien fonctionné. ($DISPLAY est défini.)
La redirection X via SSH vers le conteneur Docker est-elle vraiment possible?

5
LesMiserables25

Si le conteneur se trouve sur votre machine locale, il est plus facile de donner aux programmes votre initié un accès direct à votre socket X11. Pour cela, il vous suffit de monter /tmp/.X11-unix et ~/.Xauthority dans votre conteneur et de définir $DISPLAY.

En supposant que vous utilisiez some_user avec le répertoire personnel /home/some_user/ pour exécuter your_program dans le conteneur some_image use

docker run  -v /tmp/.X11-unix:/tmp/.X11-unix \
            -v ~/.Xauthority:/home/some_user/.Xauthority \
            --env DISPLAY=:0 --user some_user some_image your_program
1
Florian Diesch