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
lxc [Le 03/04/2019, 09:52]
185.220.101.69 test wiki -> 04/03/19 09:49:22 < *-Sp4rKy> beaver: j'ai reset le vpn je pense que ca devrait aller mieux
lxc [Le 11/09/2022, 12:09] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 2: Ligne 2:
 ---- ----
 {{ :​lxd:​containers.png?​100nolink|}} {{ :​lxd:​containers.png?​100nolink|}}
- 
  
 ====== LXC ====== ====== LXC ======
  
-**LXC** est l'​acronyme de l'​anglicisme **LinuX Containers**,​ est un système de [[virtualisation|virtualisation]],​ utilisant l'​isolation comme méthode de cloisonnement au niveau du système d'​exploitation. Il est utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs partageant le même noyau. Le conteneur apporte une virtualisation de l'​environnement d'​exécution (processeur,​ mémoire vive, réseau, système de fichier…) et non pas de la machine. Pour cette raison, on parle de « conteneur » et non de « machine virtuelle ». +**LXC** est l'​acronyme de l'​anglicisme **LinuX Containers**,​ est un système de [[virtualisation|virtualisation]],​ utilisant l'​isolation comme méthode de cloisonnement au niveau du système d'​exploitation. Il est utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs partageant le même noyau. Le conteneur apporte une virtualisation de l'​environnement d'​exécution (processeur,​ mémoire vive, réseau, système de fichier…) et non pas de la machine. Pour cette raison, on parle de « conteneur » et non de « machine virtuelle ».
 Veillez à ne pas confondre **LXC** et [[:​LXD|LXD]],​ en effet, [[:​LXD|LXD]] est une surcouche logicielle à **LXC**. [[:​LXD|LXD]] est développé par Canonical pour simplifier la manipulation de vos conteneurs. Veillez à ne pas confondre **LXC** et [[:​LXD|LXD]],​ en effet, [[:​LXD|LXD]] est une surcouche logicielle à **LXC**. [[:​LXD|LXD]] est développé par Canonical pour simplifier la manipulation de vos conteneurs.
  
Ligne 19: Ligne 18:
 ===== Création de notre premier container LXC (root) ===== ===== Création de notre premier container LXC (root) =====
 <note warning>​Attention,​ bien que vos processus soient isolés de votre [[wpfr>​Hôte_(informatique)|machine hôte]], via ce procédé, votre container [[apt>​lxc|LXC]] nécessitera d'​utiliser [[:​sudo|sudo]] pour être fonctionnel. Si vous avez une faille de sécurité dans votre container, une [[wp>​Privilege_escalation|escalade des privilèges]] peut être intenté sur votre container, pour accéder à votre [[wpfr>​Hôte_(informatique)|machine hôte]]. L'​utilisation de [[:​sudo|sudo]] pourrait donc compromettre votre [[wpfr>​Hôte_(informatique)|système hôte]] !.</​note>​ <note warning>​Attention,​ bien que vos processus soient isolés de votre [[wpfr>​Hôte_(informatique)|machine hôte]], via ce procédé, votre container [[apt>​lxc|LXC]] nécessitera d'​utiliser [[:​sudo|sudo]] pour être fonctionnel. Si vous avez une faille de sécurité dans votre container, une [[wp>​Privilege_escalation|escalade des privilèges]] peut être intenté sur votre container, pour accéder à votre [[wpfr>​Hôte_(informatique)|machine hôte]]. L'​utilisation de [[:​sudo|sudo]] pourrait donc compromettre votre [[wpfr>​Hôte_(informatique)|système hôte]] !.</​note>​
 +
  
 Pour créer un container avec pour nom((Option -n.)) **container_xenial**,​ pour la distribution((Option -d.)) **Ubuntu**, sous la release((Option -r.)) **Xenial**, ayant une architecture((Option -a.)) **amd64**, nous utiliserons cette commande : Pour créer un container avec pour nom((Option -n.)) **container_xenial**,​ pour la distribution((Option -d.)) **Ubuntu**, sous la release((Option -r.)) **Xenial**, ayant une architecture((Option -a.)) **amd64**, nous utiliserons cette commande :
Ligne 160: Ligne 160:
 <code bash>​sudo lxc-stop -n container_xenial</​code>​ <code bash>​sudo lxc-stop -n container_xenial</​code>​
  
-Et ensuite, nous passons à la destruction : +Et ensuite, nous passons à la destruction :
  
 <code bash>​sudo lxc-destroy -n container_xenial</​code>​ <code bash>​sudo lxc-destroy -n container_xenial</​code>​
Ligne 170: Ligne 170:
 Pour pouvoir utiliser [[apt>​lxc|LXC]] sans [[sudo|sudo]],​ et donc par conséquent,​ minimiser le risque qu'un attaquant arrive à avoir accès à votre [[wpfr>​Hôte_(informatique)|hôte système]] à cause de l'​utilisation de [[sudo|sudo]],​ nous allons déjà récupérer le sub**g**id ainsi que le subg**u**id de notre utilisateur courant : Pour pouvoir utiliser [[apt>​lxc|LXC]] sans [[sudo|sudo]],​ et donc par conséquent,​ minimiser le risque qu'un attaquant arrive à avoir accès à votre [[wpfr>​Hôte_(informatique)|hôte système]] à cause de l'​utilisation de [[sudo|sudo]],​ nous allons déjà récupérer le sub**g**id ainsi que le subg**u**id de notre utilisateur courant :
 <code bash> <code bash>
-cat /​etc/​sub{g,​u}id ​| grep $USER+grep -h $USER /​etc/​sub{g,​u}id
 </​code>​ </​code>​
  
Ligne 285: Ligne 285:
 </​code>​ </​code>​
  
-Vous noterez qu'​il ​y'a ni mot de passe attribué, ni rien, impossible donc de se connecter à notre container **container_unprivileged** ni via la méthode [[ssh|ssh]],​ ni via la méthode **lxc-console**. Voici un moyen pour attribuer un mot de passe à l'​utilisateur **ubuntu**. Nous allons déjà démarrer notre container fraîchement installé :+Vous noterez qu'​il ​n'a ni mot de passe attribué, ni rien, impossible donc de se connecter à notre container **container_unprivileged** ni via la méthode [[ssh|ssh]],​ ni via la méthode **lxc-console**. Voici un moyen pour attribuer un mot de passe à l'​utilisateur **ubuntu**. Nous allons déjà démarrer notre container fraîchement installé :
  
 <code bash>​lxc-start -n container_unprivileged</​code>​ <code bash>​lxc-start -n container_unprivileged</​code>​
Ligne 366: Ligne 366:
 <code bash>​lxc-stop -n container_unprivileged</​code>​ <code bash>​lxc-stop -n container_unprivileged</​code>​
  
-Et ensuite, nous passons à la destruction : +Et ensuite, nous passons à la destruction :
  
 <code bash>​lxc-destroy -n container_unprivileged</​code>​ <code bash>​lxc-destroy -n container_unprivileged</​code>​
Ligne 390: Ligne 390:
 <code bash>​sudo -i && cd /​home/​$USER/​.local/​lxc/​nom_de_votre_container/</​code>​ <code bash>​sudo -i && cd /​home/​$USER/​.local/​lxc/​nom_de_votre_container/</​code>​
  
-Ensuite, nous utilisons la commande [[tar|tar]] avec son option **--numeric-owner**,​ qui est ici très importante. Elle va permettre de garder les **uid/gid** intactes lors de l'​extraction. Nous utilisons aussi l'​outil [[apt>​gzip|gzip]] et son option **-9((--best-compression.))**,​ qui vous offrira, une compression maximale.+Ensuite, nous utilisons la commande [[tar|tar]] avec son option **%%--%%numeric-owner**,​ qui est ici très importante. Elle va permettre de garder les **uid/gid** intactes lors de l'​extraction. Nous utilisons aussi l'​outil [[apt>​gzip|gzip]] et son option **-9((--best-compression.))**,​ qui vous offrira, une compression maximale.
  
 <code bash>​GZIP=-9 tar --numeric-owner -czvf mon_container.tar.gz ./​*</​code>​ <code bash>​GZIP=-9 tar --numeric-owner -czvf mon_container.tar.gz ./​*</​code>​
Ligne 422: Ligne 422:
 <code bash>tar --numeric-owner -xzvf mon_container.tar.gz</​code>​ <code bash>tar --numeric-owner -xzvf mon_container.tar.gz</​code>​
  
-C'est terminé, il y'a plus qu'à redémarrer **lxcfs.service**,​ **lxc-net.service**,​ **lxc.service** :+C'est terminé, il n'a plus qu'à redémarrer **lxcfs.service**,​ **lxc-net.service**,​ **lxc.service** :
  
 <code bash>​systemctl start lxcfs.service lxc-net.service lxc.service && exit</​code>​ <code bash>​systemctl start lxcfs.service lxc-net.service lxc.service && exit</​code>​
Ligne 432: Ligne 432:
 === Pour une utilisation unprivileged === === Pour une utilisation unprivileged ===
  
-<note tip>Nous aborderons ici, que la restauration de votre backup précédemment créé. ​+<note tip>​Nous ​n'aborderons ici, que la restauration de votre backup précédemment créé.
 Pour la configuration d'un container [[apt>​lxc|LXC]] **unprivileged**,​ merci de suivre le chapitre [[lxc#​configuration_de_lxc_pour_une_utilisation_unprivileged|configuration de lxc pour une utilisation unprivileged]]. Pour la configuration d'un container [[apt>​lxc|LXC]] **unprivileged**,​ merci de suivre le chapitre [[lxc#​configuration_de_lxc_pour_une_utilisation_unprivileged|configuration de lxc pour une utilisation unprivileged]].
 </​note>​ </​note>​
Ligne 457: Ligne 457:
 <code bash>tar --numeric-owner -xzvf mon_container.tar.gz</​code>​ <code bash>tar --numeric-owner -xzvf mon_container.tar.gz</​code>​
  
-C'est terminé, il y'a plus qu'à redémarrer **lxcfs.service**,​ **lxc-net.service**,​ **lxc.service** :+C'est terminé, il n'a plus qu'à redémarrer **lxcfs.service**,​ **lxc-net.service**,​ **lxc.service** :
  
 <code bash>​sudo systemctl start lxcfs.service lxc-net.service lxc.service</​code>​ <code bash>​sudo systemctl start lxcfs.service lxc-net.service lxc.service</​code>​
  • lxc.1554277967.txt.gz
  • Dernière modification: Le 03/04/2019, 09:52
  • par 185.220.101.69