Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
lxd [Le 19/10/2017, 23:33]
200.105.196.164 [Travailler dans vos containers]
lxd [Le 05/04/2023, 13:33] (Version actuelle)
217.114.205.206 [LXD]
Ligne 6: Ligne 6:
  
  
-**LXD** est un logiciel libre développé par Canonical pour simplifier la manipulation de conteneurs de logiciels à la manière d'un hyperviseur de VM. C'est une surcouche logicielle de LXC. Il fait partie du projet global ​ [[https://​linuxcontainers.org/fr/|Linux Containers]] de gestion de containers.+**LXD** est un logiciel libre développé par Canonical pour simplifier la manipulation de conteneurs de logiciels à la manière d'un hyperviseur de VM. C'est une surcouche logicielle de [[:LXC|LXC]]. Il fait partie du projet global ​ [[https://​linuxcontainers.org|LinuX Containers]] de gestion de containers.
  
 Il a l'​avantage d'​être beaucoup plus léger qu'une machine virtuelle classique, car il ne virtualise pas un OS complet mais partage de nombreuses ressources avec l'OS hôte. On parle d'​environnements virtuels (voir la page [[virtualisation|virtualisation]] pour plus d'​information). Il s'​appuie sur des fonctions comme les espaces de noms et les groupes de contrôle du noyau pour isoler le container du reste de la machine. Il a l'​avantage d'​être beaucoup plus léger qu'une machine virtuelle classique, car il ne virtualise pas un OS complet mais partage de nombreuses ressources avec l'OS hôte. On parle d'​environnements virtuels (voir la page [[virtualisation|virtualisation]] pour plus d'​information). Il s'​appuie sur des fonctions comme les espaces de noms et les groupes de contrôle du noyau pour isoler le container du reste de la machine.
  
-<note important>​En conséquence,​ LXD ne peut pas accueillir des systèmes autres que Linux (il n'est pas capable d'​accueillir un container Windows ​donc) et ces systèmes ont été spécialement préparés pour fonctionner dans un container. Il n'est donc pas n'​ont ​plus possible d'​utiliser des ISO de n'​importe quelle distribution Linux.</​note>​+<note important>​En conséquence,​ LXD ne peut pas accueillir des systèmes autres que Linux (il n'est, donc, pas capable d'​accueillir un container Windows) et ces systèmes ont été spécialement préparés pour fonctionner dans un container. Il n'est donc pas non plus possible d'​utiliser des ISO de n'​importe quelle distribution Linux.</​note>​
  
 LXD permet donc de faire tourner plusieurs serveurs sur une même machine et de les isoler les uns des autres et de la machine hôte pour une plus grande sécurité.\\ LXD permet donc de faire tourner plusieurs serveurs sur une même machine et de les isoler les uns des autres et de la machine hôte pour une plus grande sécurité.\\
 Pour un particulier,​ il peux être intéressant d'​utiliser un container pour démarrer un serveur ouvert sur l'​internet. Ainsi, si il est mal configuré et qu'un hacker arrivait à s'​introduire sur votre serveur, il serait bloqué à l’intérieur du container et n'​aurait pas accès à vos fichiers persos, qui eux restent sur l’hôte. Pour un particulier,​ il peux être intéressant d'​utiliser un container pour démarrer un serveur ouvert sur l'​internet. Ainsi, si il est mal configuré et qu'un hacker arrivait à s'​introduire sur votre serveur, il serait bloqué à l’intérieur du container et n'​aurait pas accès à vos fichiers persos, qui eux restent sur l’hôte.
  
-FIXME Je crois que les containers ont certaines limitations. Par exemple, je n'​arrive pas à faire fonctionner un environnement graphique dans un container. Mais peut être que c'est simplement moi qui m'y prend mal. A vérifier. 
 ===== Pré-requis ===== ===== Pré-requis =====
 Avoir installé [[:​xenial|Ubuntu 16.04]] ou une version ultérieure Avoir installé [[:​xenial|Ubuntu 16.04]] ou une version ultérieure
Ligne 29: Ligne 28:
 <​code>​sudo lxd init </​code>​ <​code>​sudo lxd init </​code>​
  
-Il faut alors répondre aux questions du configurateur. Si vous n’êtes pas un pro du sujet et/ou un as des réseaux, vous pouvez simplement valider toutes les réponses par défaut ​proposée+Il faut alors répondre aux questions du configurateur. Si vous n’êtes pas un pro du sujet et/ou un as des réseaux, vous pouvez simplement valider toutes les réponses par défaut ​proposées.
   * Les images de vos containers seront alors stockée sur votre disque (option ''​dir''​ à la question ''​Name of the storage backend to use (dir or zfs) [default=zfs]:''​)   * Les images de vos containers seront alors stockée sur votre disque (option ''​dir''​ à la question ''​Name of the storage backend to use (dir or zfs) [default=zfs]:''​)
   * LXD sera accessible uniquement en local (option ''​no''​ à la question ''​Would you like LXD to be available over the network (yes/no) [default=no]?''​)   * LXD sera accessible uniquement en local (option ''​no''​ à la question ''​Would you like LXD to be available over the network (yes/no) [default=no]?''​)
-  * Une connexion réseau par pont (bridged network) sera configurée sur votre ordinateur. En validant les options proposées dans les boites de dialogue de cette étape, vous allez créer un sous-réseau ​privée ​virtuel sur votre machine. Les différents containers pourront communiquer entre eux sur ce reseau. Ils pourront accéder à l’extérieur grâce au mécanisme NAT (Network Address Translation) mais ne seront pas accessibles depuis l’extérieur. Pour faire simple, vos containers sont sur un réseau interne à votre ordinateur exactement comme vos ordinateurs sont sur votre réseau local derrière votre box Internet / Firewall.+  * Une connexion réseau par pont (bridged network) sera configurée sur votre ordinateur. En validant les options proposées dans les boites de dialogue de cette étape, vous allez créer un sous-réseau ​privé ​virtuel sur votre machine. Les différents containers pourront communiquer entre eux sur ce réseau. Ils pourront accéder à l’extérieur grâce au mécanisme NAT (Network Address Translation) mais ne seront pas accessibles depuis l’extérieur. Pour faire simple, vos containers sont sur un réseau interne à votre ordinateur exactement comme vos ordinateurs sont sur votre réseau local derrière votre box Internet / Firewall.
  
 Si besoin, vous pourrez reconfigurer votre sous-réseau privée virtuel en entrant la commande : Si besoin, vous pourrez reconfigurer votre sous-réseau privée virtuel en entrant la commande :
Ligne 64: Ligne 63:
 <​code>​lxc start MonContainer</​code>​ <​code>​lxc start MonContainer</​code>​
  
-Et enfin pour le supprimer définitivement ​+Et enfin pour le supprimer définitivement
 <​code>​lxc delete MonContainer</​code>​ <​code>​lxc delete MonContainer</​code>​
  
Ligne 75: Ligne 74:
 Vous vous retrouvez alors avec un fichier de ce genre 0bf450c17cb7034077c83487e0.tar.gz. Vous pouvez le passer sur votre autre système hôte et l'​importer dans votre serveur d'​images local avec la commande suivante : Vous vous retrouvez alors avec un fichier de ce genre 0bf450c17cb7034077c83487e0.tar.gz. Vous pouvez le passer sur votre autre système hôte et l'​importer dans votre serveur d'​images local avec la commande suivante :
 <​code>​lxc image import 0bf450c17cb7034077c83487e0.tar.gz</​code>​ <​code>​lxc image import 0bf450c17cb7034077c83487e0.tar.gz</​code>​
-Tapez ensuite ​+Tapez ensuite
 <​code>​lxc image list</​code>​ <​code>​lxc image list</​code>​
 pour connaitre les infos sur votre image importée et les utiliser pour créer un nouveau container pour connaitre les infos sur votre image importée et les utiliser pour créer un nouveau container
Ligne 88: Ligne 87:
 Vous pouvez aussi y entrer en temps que utilisateur ''​ubuntu''​ Vous pouvez aussi y entrer en temps que utilisateur ''​ubuntu''​
 <​code>​lxc exec MonContainer -- sudo --login --user ubuntu</​code>​ <​code>​lxc exec MonContainer -- sudo --login --user ubuntu</​code>​
-Les images ​Unbuntu ​ont un user ''​ubuntu''​ preconfiguré avec les droits de sudo sans password.\\+Les images ​Ubuntu ​ont un user ''​ubuntu''​ preconfiguré avec les droits de sudo sans password.\\
  
 Vous pouvez faire ce que vous voulez dans votre container sans risque d’endommager ou corrompre votre système hôte. Ce qui se passe dans le container reste dans le container.\\ Vous pouvez faire ce que vous voulez dans votre container sans risque d’endommager ou corrompre votre système hôte. Ce qui se passe dans le container reste dans le container.\\
  
-Il est toutefois possible de partager des fichiers et/ou des répertoires entre l'​hôte et le container. Par exemple, pour copier le fichier ''​truc.pdf''​ dans votre container :+Il est toutefois possible de partager des fichiers et/ou des répertoires entre l'​hôte et le container. Par exemple, pour copier le fichier ''​truc.zip''​ dans votre container :
 <​code>​lxc file push truc.zip MonContainer/​tmp/</​code>​ <​code>​lxc file push truc.zip MonContainer/​tmp/</​code>​
  
-Vous pouvez aussi recuperer ce fichier ''​truc.zip''​ sur votre système ​hote:+Vous pouvez aussi recuperer ce fichier ''​truc.zip''​ sur votre système ​hôte:
 <​code>​lxc file pull MonContainer/​etc/​truc.zip .</​code>​ <​code>​lxc file pull MonContainer/​etc/​truc.zip .</​code>​
  
Ligne 103: Ligne 102:
 Ceci monte le dossier /tmp/ de l'​hôte vers le dossier /host/tmp du container. Ceci monte le dossier /tmp/ de l'​hôte vers le dossier /host/tmp du container.
    
 +===== Aller plus loin =====
 +(FIXME lien mort ) Pour configurer votre container, et votre hôte, afin de le rendre visible sur Internet, je vous invite à lire ce [[https://​www.supinfo.com/​articles/​single/​5924-configurer-utiliser-lxd|tuto]](FR). Indispensable si vous installez un serveur web, ftp ou autre dans votre container.\\
 +Pour faire fonctionner des applications graphiques, accéder à la carte son, etc, je vous invite à suivre ce [[https://​blog.simos.info/​how-to-run-graphics-accelerated-gui-apps-in-lxd-containers-on-your-ubuntu-desktop/​|tuto]] (EN). Notez, qu'il faudra mettre à jour LXD pour utiliser la version 2.7 minimum. Cette méthode peut être intéressante pour installer des logiciels qui installent des packages i386 comme wine ou google-earth sans compromettre les dépendances des packages de votre système hôte.
  
 ===== Ressources ===== ===== Ressources =====
  • lxd.1508448832.txt.gz
  • Dernière modification: Le 19/10/2017, 23:33
  • par 200.105.196.164