Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
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 | ||
doc:autres:vm:lxc:mode-utilisateur [12/07/2018 11:27] captnfab [Utilisation du conteneur] |
doc:autres:vm:lxc:mode-utilisateur [18/11/2020 20:51] captnfab [Création du conteneur] |
||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
* Testé par captnfab le 09/12/2015 | * Testé par captnfab le 09/12/2015 | ||
* Testé et mis à jour par captnfab le 17/06/2018 | * Testé et mis à jour par captnfab le 17/06/2018 | ||
+ | * Testé et mis à jour par jeremyp3 le 18/11/2020 | ||
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=151771#p151771 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=151771#p151771 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 97: | Ligne 98: | ||
== Création des cgroups == | == Création des cgroups == | ||
- | Pour l'instant, les cgroups nécessaires ne sont pas créés par défaut. Créer le fichier suivant : | + | Pour l'instant, les cgroups nécessaires ne sont pas créés par défaut. Créer les fichiers suivant : |
<code bash /usr/local/sbin/prepare-lxc-cgroups>#!/bin/sh | <code bash /usr/local/sbin/prepare-lxc-cgroups>#!/bin/sh | ||
LXC_USERS=$(cat /etc/lxc/lxc-users) | LXC_USERS=$(cat /etc/lxc/lxc-users) | ||
Ligne 117: | Ligne 118: | ||
done | done | ||
</code> | </code> | ||
- | <code root>chmod a+x /usr/local/sbin/prepare-lxc-cgroups</code> | + | et |
+ | <code bash /usr/local/bin/move-pid-to-cgroup>#!/bin/sh | ||
+ | PID=$1 | ||
+ | for d in /sys/fs/cgroup/* | ||
+ | do | ||
+ | echo $PID > $d/$USER/tasks | ||
+ | done</code> | ||
+ | à rendre exécutables : | ||
+ | <code root>chmod a+x /usr/local/sbin/prepare-lxc-cgroups | ||
+ | chmod +x /usr/local/bin/move-pid-to-cgroup</code> | ||
== Accès == | == Accès == | ||
Ligne 151: | Ligne 161: | ||
Dans le dossier ''~lxcuser-test/.config/lxc/'' (probablement à créer), créer un fichier ''default.conf'' contenant la configuration suivante : | Dans le dossier ''~lxcuser-test/.config/lxc/'' (probablement à créer), créer un fichier ''default.conf'' contenant la configuration suivante : | ||
+ | |||
+ | depuis Debian buster : | ||
+ | |||
+ | <code ini ~lxcuser-test/.config/lxc/default.conf>lxc.net.0.type = veth | ||
+ | lxc.net.0.link = lxcbr0 | ||
+ | lxc.net.0.flags = up | ||
+ | # À compléter pour définir une adresse mac | ||
+ | #lxc.net.0.hwaddr = 00:16:3e:xx:xx:xx | ||
+ | lxc.idmap = u 0 624288 65536 | ||
+ | lxc.idmap = g 0 624288 65536</code> | ||
+ | Remplacer //624288// sur les deux dernières lignes par les valeurs du premier sous-uid/gid alloué à l'utilisateur. | ||
+ | |||
+ | Pour les anciennes version de Debian ou de LXC: | ||
<code ini ~lxcuser-test/.config/lxc/default.conf>lxc.network.type = veth | <code ini ~lxcuser-test/.config/lxc/default.conf>lxc.network.type = veth | ||
lxc.network.link = lxcbr0 | lxc.network.link = lxcbr0 | ||
Ligne 160: | Ligne 183: | ||
Remplacer //624288// sur les deux dernières lignes par les valeurs du premier sous-uid/gid alloué à l'utilisateur. | Remplacer //624288// sur les deux dernières lignes par les valeurs du premier sous-uid/gid alloué à l'utilisateur. | ||
- | <code user>lxc-create -t download -n test -- -d debian</code> | + | <code user>lxc-create -n test -t download -- -d debian -r buster -a amd64</code> |
+ | |||
+ | Petit résumé des options : | ||
+ | * -n: Nom du conteneur | ||
+ | * -t : template a utiliser, ici download | ||
+ | après les //--// on donne les paramètres du template : | ||
+ | * -d : Nom de la distribution dans notre cas: Debian. | ||
+ | * -r: le nom de la release par exemple : buster, stretch, sid, testing ... | ||
+ | * -a : architecture de la distribution qui doit être la même que le système dans notre cas: amd64. | ||
===== Configuration du conteneur ===== | ===== Configuration du conteneur ===== | ||
Le fichier de configuration ''~/.local/share/lxc/test/config'' doit ressembler à ça : | Le fichier de configuration ''~/.local/share/lxc/test/config'' doit ressembler à ça : | ||
+ | |||
+ | Depuis Debian buster : | ||
+ | <code ini ~/.local/share/lxc/test/config> | ||
+ | # Template used to create this container: /usr/share/lxc/templates/lxc-download | ||
+ | # Parameters passed to the template: -d debian -r buster -a amd64 | ||
+ | # For additional config options, please look at lxc.container.conf(5) | ||
+ | |||
+ | # Uncomment the following line to support nesting containers: | ||
+ | #lxc.include = /usr/share/lxc/config/nesting.conf | ||
+ | # (Be aware this has security implications) | ||
+ | |||
+ | # À compléter pour définir une adresse mac | ||
+ | |||
+ | # Distribution configuration | ||
+ | lxc.include = /usr/share/lxc/config/common.conf | ||
+ | lxc.include = /usr/share/lxc/config/userns.conf | ||
+ | lxc.arch = linux64 | ||
+ | |||
+ | # Container specific configuration | ||
+ | lxc.idmap = u 0 624288 65536 | ||
+ | lxc.idmap = g 0 624288 65536 | ||
+ | lxc.rootfs.path = dir:/home/lxcuser-test/.local/share/lxc/test/rootfs | ||
+ | lxc.uts.name = test | ||
+ | |||
+ | # Network configuration | ||
+ | lxc.net.0.type = veth | ||
+ | lxc.net.0.link = lxcbr0 | ||
+ | lxc.net.0.flags = up | ||
+ | #lxc.network.hwaddr = 00:16:3e:xx:xx:xx | ||
+ | </code> | ||
+ | |||
+ | Pour les anciennes version de Debian ou de LXC: | ||
<code ini ~/.local/share/lxc/test/config> | <code ini ~/.local/share/lxc/test/config> | ||
# Template used to create this container: /usr/share/lxc/templates/lxc-download | # Template used to create this container: /usr/share/lxc/templates/lxc-download | ||
Ligne 274: | Ligne 337: | ||
Vérifier que le fichier ''~lxcuser-test/.local/share/lxc/test/config'' contient bien la ligne | Vérifier que le fichier ''~lxcuser-test/.local/share/lxc/test/config'' contient bien la ligne | ||
<code>lxc.include = /usr/share/lxc/config/debian.userns.conf</code> | <code>lxc.include = /usr/share/lxc/config/debian.userns.conf</code> | ||
+ | |||
+ | * ''Set hostname to <test>. | ||
+ | Failed to create /init.scope control group: Permission denied | ||
+ | Failed to allocate manager object: Permission denied | ||
+ | [!!!!!!] Failed to allocate manager object. | ||
+ | Exiting PID 1...'' | ||
+ | cela arrive quand le paquet ''libpam-cgfs'' n'est pas installé. | ||
===== Sources ===== | ===== Sources ===== | ||