web-dev-qa-db-fra.com

ubuntu-desktop dans lxc avec le serveur ubuntu en tant qu'hôte

J'ai récemment installé le serveur Ubuntu 18.04 et j'aimerais l'utiliser comme bureau sans trop interférer avec la partie serveur.

Cela devrait être possible en utilisant des conteneurs linux (lxd). Le problème est que lorsque je lance un conteneur Ubuntu, y installe ubuntu-desktop, mount/dev/tty7 et exécute xinit, deux choses se produisent:

1) écran noir avec un curseur immobile (pas la souris) en haut à gauche. le clavier ne fonctionne pas, nécessite un redémarrage 2) dans le journal Xorg, je trouve cette erreur:

xf86EnableIOPorts: échec de la définition de l'IOPL pour les E/S (opération non autorisée)

1
user153611

Le lien ci-dessus vers le blog de Simos illustre une approche permettant d'exécuter une interface graphique dans un conteneur LXD.

Alexandre Dey's a publié un GitHub qui possède également une très bonne méthode et qui est en fait un peu plus flexible en termes de prise en charge de plusieurs utilisateurs du bureau LXD.

https://github.com/AlexandreDey/ContainerBox

Alexandre travaille actuellement à la mise à jour de la documentation de ContainerBox et à la mise en œuvre de la nouvelle fonctionnalité LXD 3.x.x Device PROXY pour les graphiques et l’audio. (lisez le commentaire de la section "issues" à ce sujet sur sa page github). Quoi qu'il en soit, vous devriez lire tous ces "problèmes" car, jusqu'à ce qu'il mette à jour la documentation, certains éléments contenus dans les commentaires clarifient ce qui manque actuellement dans son fichier README actuel.

1
bmullan

Il devrait être possible de lancer un serveur X11 dans un conteneur LXD quand aucun serveur X11 ne s'exécute sur l'hôte.

Voir this post pour plus d'informations sur l'exécution d'applications X11 dans un conteneur et sur l'orientation de la sortie vers un serveur X11 existant sur l'hôte. Dans cet article, il y a une section prerequisite à laquelle vous devez également vous intéresser.

Pour ce cas particulier d'exécution du serveur X11 complet dans un conteneur LXD, vous devez transférer tous les périphériques nécessaires de l'hôte dans le conteneur, en vous assurant que le mode de propriété et le mode d'autorisation conviennent à chacun. Vous devrez peut-être effectuer une mise à niveau vers LXD 3.2 (package de composant logiciel enfichable) en cas de problème de spécification de la propriété ou du mode d'un périphérique.

Pour revenir à votre question initiale, il serait utile de répertorier les périphériques que vous essayez d'envoyer dans le conteneur, ainsi que leur propriété/mode.

1
Simos