Run Gui Apps Docker

Table des matières

Docker est couramment utilisé pour les applications côté serveur et de ligne de commande. Cependant, avec la bonne configuration, vous pouvez également exécuter des applications basées sur l’interface graphique à l’intérieur des conteneurs. Ces conteneurs peuvent inclure des bibliothèques GUI et des outils d’affichage, qui permettent aux applications d’exécuter dans un environnement sécurisé et isolé. Cette approche simplifie le développement, les tests et le déploiement d’applications d’interface graphique dans différentes machines ou environnements OS. Ce guide vous guidera dans la façon d’exécuter des applications GUI dans des conteneurs Docker avec une configuration minimale.

Comprendre les conteneurs Docker et Docker GUI

Docker vous permet d’emballer une application avec tout ce dont il a besoin, telles que le code, les bibliothèques et les paramètres, dans une unité auto-contenue appelée conteneur. Ces conteneurs partagent le noyau du système hôte, ce qui les rend légers, rapides à démarrer et efficaces par rapport aux machines virtuelles complètes.

Les conteneurs GUI sont des configurations Docker qui incluent des applications graphiques, comme Firefox, Gedit ou d’autres outils de bureau, permettant à leurs fenêtres d’apparaître sur votre écran réel. Contrairement aux conteneurs standard, ceux-ci nécessitent une configuration supplémentaire pour se connecter avec le système d’affichage de l’hôte, permettant un rendu et une interaction appropriés avec les éléments de GUI.

Pourquoi exécuter des applications GUI dans Docker?

Voici les principales raisons pour lesquelles l’exécution des applications GUI dans Docker peut être bénéfique:

  • Lorsque vous exécutez une application GUI dans Docker, tout ce dont il a besoin, comme les bibliothèques et les paramètres, est emballé à l’intérieur du conteneur. Cela maintient votre système principal sans encombrement ou conflit.
  • L’utilisation de Docker signifie que votre application fonctionnera de la même manière sur n’importe quelle machine. Que vous développiez, testez ou partagez avec d’autres, l’environnement reste cohérent.
  • Les conteneurs permettent de tester une nouvelle application ou de déboguer quelque chose. Vous pouvez exécuter, faire une pause ou les supprimer sans affecter votre machine hôte.
  • Docker vous permet d’exécuter des applications GUI Linux sur des systèmes non Linux. Il le fait en utilisant des outils de partage d’affichage comme Xquartz ou VCXSRV, il n’y a donc pas besoin d’une machine virtuelle.
  • Contrairement aux machines virtuelles traditionnelles, les conteneurs Docker utilisent moins de ressources système. Ils commencent plus rapidement et s’exécutent plus facilement, même pour les applications basées sur l’interface graphique.

Exécutez des applications GUI dans Docker

Pour exécuter des applications GUI dans Docker, vous devez d’abord vous assurer que Docker est installé sur votre système Linux. Vous pouvez vérifier cela en exécutant la commande suivante:

docker --version

Si cette commande renvoie un numéro de version, cela signifie que Docker est installé et fonctionne. Sinon, vous verrez probablement une erreur «commande non trouvée».

Une fois Docker correctement configuré, vous pouvez passer aux étapes suivantes.

Activer le service Docker

Maintenant, démarrez le service Docker à l’aide de la commande suivante:

sudo systemctl start docker

Pour vérifier si le service Docker fonctionne correctement, exécutez:

sudo systemctl status docker

La sortie confirme que le service Docker est actif et en cours d’exécution sans aucun problème:

Vérifier l'état de Docker

Configurer le dossier du projet et Dockerfile

Créons un répertoire nommé «Dockergui», où nous stockons tous les fichiers liés à Docker pour exécuter des applications GUI:

mkdir dockerGUI

Accédez maintenant à ce répertoire pour vous assurer que tous les fichiers suivants que nous créons ou modifions seront conservés dans le dossier Dockergui:

cd dockerGUI

Créez un nouveau fichier nommé dockerguifile pour définir la configuration de l’image Docker:

nano dockerGUIFile

Maintenant, collez les lignes de code suivantes dans le dockerguifile:

FROM jess/firefox
ENV DISPLAY=:0
CMD ("firefox")

Le code ci-dessus indique à Docker d’utiliser une image prédéfinie de Firefox et définit l’environnement d’affichage afin que l’interface graphique puisse apparaître sur le système hôte. De plus, il garantit que Firefox se lance automatiquement lorsque le conteneur s’exécute.

Note: Pour essayer une autre application, modifiez simplement l’image et la commande dans votre dockerfile. Par exemple, pour exécuter GEdit, vous pouvez utiliser l’image Ubuntu officielle et installer l’application pendant la version comme celle-ci:

FROM ubuntu
RUN apt-get update && apt-get install -y gedit
ENV DISPLAY=:0
CMD ("gedit")

Construisez l’image Docker

Maintenant que la configuration Docker est configurée dans le dockerguifile, créons l’image docker à l’aide de la commande suivante:

sudo docker build -t myfirefox:1 -f dockerGUIFile .

Cette commande construit une image docker à partir de dockerguifile, le nomme myfirefox avec la balise 1 et utilise le répertoire actuel comme contexte:

Construire l'image Docker

Lancement du conteneur Docker avec support GUI activé

Maintenant, activez la prise en charge de GUI pour les conteneurs Docker en exécutant la commande suivante:

xhost +local:docker

La sortie confirme que les clients locaux (comme les conteneurs Docker) exécutés sur mon système sont désormais autorisés à se connecter à mon serveur X:

Autoriser les connexions à x serveur

Maintenant, exécutez le conteneur à l’aide de la commande suivante pour lancer Firefox avec la prise en charge de l’interface graphique sur votre système hôte:

docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix myfirefox:1

En conséquence, cette commande connecte le conteneur à votre écran, ce qui permet à Firefox de s’ouvrir sur votre écran comme une application native:

Exécutez l'application GUI de Docker

Note: En utilisant le --rm L’option fait que Docker supprime automatiquement le conteneur après la fermeture de l’application, en gardant votre système propre et en l’empêchant docker ps -s.

Débrancher Docker de X Server

Une fois que vous avez terminé l’utilisation de l’application GUI, il est recommandé de fermer l’accès au serveur X pour des raisons de sécurité:

xhost -local:docker
Supprimer les connexions de X serveur

Réflexions finales

L’exécution d’applications basées sur l’interface graphique dans Docker est un excellent moyen d’étendre ce que les conteneurs peuvent faire au-delà de la ligne de commande. Avec la bonne configuration, vous pouvez lancer des applications de bureau à partir d’un conteneur comme s’ils étaient installés sur votre système. C’est une approche simple mais puissante pour tester, développer ou explorer les outils Linux dans un environnement propre. Commencez à construire vos propres conteneurs prêts pour GUI et profitez pleinement de ce que Docker offre sur votre bureau Linux.

Partager :
Facebook
Twitter
LinkedIn

Gentil Geek

Passionné d'informatique depuis ma plus tendre enfance aujourd'hui j'en ai fait mon métier. A vos côtés pour simplifier votre utilisation de l'informatique et vous permettre de gagner en compétences.

Poster le commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *