Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
lxc [Le 03/06/2019, 17:47] scaph [Restauration de votre backup via tar] + Ajout " n' ". |
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 5: | Ligne 5: | ||
====== 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 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'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é : |
<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'y 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 n'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'y 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> |