J'ai pu faire fonctionner xeyes dans l'article «Affichage des fenêtres des applications X11 exécutées sur des conteneurs Docker» (https://qiita.com/hoto17296/items/7c1ba10c1575c6c38105).
Le --net host
est spécifié comme indiqué ci-dessous.
$ docker run --rm -it \
--net host \
-e DISPLAY=$DISPLAY \
-v $HOME/.Xauthority:/root/.Xauthority \
xeyes
--net host
utilise un réseau qui ne peut communiquer qu'entre l'hôte docker et le conteneur docker.
Par conséquent, il ne peut pas être utilisé lorsque vous souhaitez vous connecter à Internet à partir du conteneur Docker.
Dans cet article, vous pourrez accéder au réseau depuis le conteneur et utiliser l'application X11.
Dockerfile
Différence par rapport à Original
xeyes
directement sur CMD, mais je démarre / bin / bash
pour essayer l'accès au réseau.bash
sur l'image.Contenu de conf / Dockerfile
FROM alpine
RUN apk --no-cache add bash xeyes
CMD ["/bin/bash"]
docker build -t xeyes conf
xhost +local:
Différence par rapport à Original
unix $ {DISPLAY}
à la variable d'environnement DISPLAY
./ tmp / .X11-unix
avec -v
avec l'hôte.docker run --rm -it \
-e DISPLAY=unix${DISPLAY} \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME/.Xauthority:/root/.Xauthority \
xeyes
bash-5.0# ping www.example.com
PING www.example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: seq=0 ttl=51 time=149.040 ms
64 bytes from 93.184.216.34: seq=1 ttl=51 time=172.391 ms
64 bytes from 93.184.216.34: seq=2 ttl=51 time=195.793 ms
^C
--- www.example.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 149.040/172.408/195.793 ms
bash-5.0# xeyes
Si xhost + local:
n'est pas exécuté, l'erreur suivante se produira.
bash-5.0# xeyes
No protocol specified
Error: Can't open display: unix:0
GitHub
J'ai mis le Dockerfile et les scripts que j'ai écrits dans cet article sur GitHub.
https://github.com/m-tmatma/xeyes-docker
Recommended Posts