Commit e8eae08c authored by CHAMONT David's avatar CHAMONT David
Browse files

Plus de détails sur le X11 forwarding.

parent 54949e69
......@@ -80,47 +80,61 @@ Là encore, [brew](http://brew.sh/) simplifie la tâche :
## Cas particulier : X11 forwarding
Si pour mon plongeon spécifique, j'ai besoin de faire tourner dans un
conteneur Docker une application graphique, il faut qu'elle puisse envoyer
ses instructions au serveur X11 de la machine hôte.
conteneur Docker une application graphique linux, il faut qu'elle puisse
envoyer ses instructions au serveur X11 de la machine hôte. Pour tester
que votre configuration fonctionne, nous allons essayer de faire
exécuter l'image `gns3/xeyes`, qui se contente de faire apparaitre
deux yeux sur votre écran.
A supposer que votre variable d'environnement DISPLAY soit correctement
définie et comprenne un numéro IP, tel que `172.18.80.184:0`, et que les
connexions "externes" aient été autorisées (`xhost +`), il peut suffire
d'exporter la variable DISPLAY en lancant le conteneur. Dans une fenêtre
de commandes de la machine hôte, essayez (en utilisant le bon numéro ip) :
```
export DISPLAY=172.18.80.184:0
xhost +
docker run -e DISPLAY=$DISPLAY gns3/xeyes
```
### Sur Linux
En cas de résistance, peut-être en ajoutant un lien vers
`/tmp/.X11-unix` :
Le cas le plus simple : vous vous assurez que la variable `DISPLAY` est
définie et contient `:0`, vous glissez un petit `xhost +` pour autoriser
les connexions extérieures, et vous faite suivre `DISPLAY` à votre
conteneur, ainsi qu'un accès au répertoire temporaire adéquat :
```
export DISPLAY=172.18.80.184:0
export DISPLAY=:0
xhost +
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw gns3/xeyes
```
Si vous etes sur MacOSX avec la dernière version (boguée) de XQuartz (2.7.9),
pauvre de vous ! Pour commencer, on n'oublie pas d'autoriser les connexions
externes dans les préférences de sécurité de XQuartz. Ensuite, on
ajoute après la ligne 107 du fichier `/opt/X11/bin/startx`
(`defaultserverargs="$defaultserverargs -nolisten tcp"`) les deux
lignes suivantes :
### Sur MacOSX (avec Docker nouvelle mouture)
C'est un peu plus chaud.
D'abord, pour disposer d'un serveur X11, il faut installer XQuartz,
et autoriser les connexions externes dans ses préférences de sécurité.
Si vous avez la dernière version de XQuartz (2.7.9), il y a un bug à corriger
à la main.... après la ligne 107 du fichier `/opt/X11/bin/startx`
(`defaultserverargs="$defaultserverargs -nolisten tcp"`) ajoutez les deux
lignes suivantes et redémarrez XQuartz en priant :
```
else
defaultserverargs="$defaultserverargs -listen tcp"
```
Et on redémarre XQuartz en priant.
*Sources : [forums.docker.com](https://forums.docker.com/t/x11-forwarding-issues-with-release-10/11252),
[bugs.freedesktop.org](https://bugs.freedesktop.org/show_bug.cgi?id=95379).*
Ensuite, sans doute à cause de la couche "xhyve",
le conteneur doit récupérer un DISPLAY qui contient le numéro IP
de la machine hôte. Pour récupérer ce numéro IP, il faut scruter
les lignes "inet" dans la sortie de la commande `ifconfig`. Une
fois que vous l'avez :
```
export DISPLAY=IP:0
xhost +
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw gns3/xeyes
```
### Sur Windows 10 (avec Docker nouvelle mouture)
AHEM...
Sources :
* [forums.docker.com](https://forums.docker.com/t/x11-forwarding-issues-with-release-10/11252)
* [bugs.freedesktop.org](https://bugs.freedesktop.org/show_bug.cgi?id=95379)
## Cas particulier : mon clavier azerty n'est pas reconnu
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment