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 Prochaine révision Les deux révisions suivantes | ||
doc:autres:vm:lxc:mode-utilisateur [22/06/2018 19:29] captnfab [Utilisation de LXC en mode utilisateur non-privilégié] |
doc:autres:vm:lxc:mode-utilisateur [12/07/2018 10:49] captnfab [Utilisation du conteneur] |
||
---|---|---|---|
Ligne 81: | Ligne 81: | ||
Il faut activer certaines fonctionnalités des cgroups pour que l'on puisse lancer les conteneurs utilisateurs. | Il faut activer certaines fonctionnalités des cgroups pour que l'on puisse lancer les conteneurs utilisateurs. | ||
- | <code bash /usr/local/sbin/prepare-lxc-cgroups> | + | Vérifier que le fichier ''/sys/fs/cgroup/cpuset/cgroup.clone_children'' est bien à 1 par défaut sur le système. |
- | #!/bin/sh | + | <code root>cat /sys/fs/cgroup/cpuset/cgroup.clone_children</code> |
- | echo 1 > /sys/fs/cgroup/cpuset/cgroup.clone_children | + | |
- | echo 1 > /proc/sys/kernel/unprivileged_userns_clone | + | Créer le fichier de configuration de sysctl suivant : |
+ | <code ini /etc/sysctl.d/40-lxc-userns.conf> | ||
+ | kernel.unprivileged_userns_clone=1 | ||
+ | net.bridge.bridge-nf-call-arptables=0 | ||
+ | net.bridge.bridge-nf-call-iptables=0 | ||
+ | net.bridge.bridge-nf-call-ip6tables=0 | ||
</code> | </code> | ||
- | <code ini /etc/systemd/system/lxc-cgroups.service>[Unit] | + | Et le charger dans le système : |
- | Description=Préparation cgroups pour lxc | + | <code root>sysctl --sys</code> |
- | After=local-fs.target | + | |
- | + | ||
- | [Service] | + | |
- | Type=oneshot | + | |
- | RemainAfterExit=yes | + | |
- | ExecStart=/usr/local/sbin/prepare-lxc-cgroups | + | |
- | + | ||
- | [Install] | + | |
- | WantedBy=multi-user.target</code> | + | |
- | + | ||
- | <code root>chmod a+x /usr/local/sbin/prepare-lxc-cgroups | + | |
- | systemctl enable /etc/systemd/system/lxc-cgroups.service | + | |
- | systemctl daemon-reload | + | |
- | systemctl start lxc-cgroups</code> | + | |
Ligne 176: | Ligne 167: | ||
===== Utilisation du conteneur ===== | ===== Utilisation du conteneur ===== | ||
- | * Création | + | Pour l'instant, les cgroups nécessaires ne sont pas créés par défaut. Il faut, en tant que ''lxcuser-test'', lancer le script suivant avant de lancer le conteneur. |
+ | <code user>for d in /sys/fs/cgroup/* | ||
+ | do | ||
+ | f=$(basename $d) | ||
+ | echo "looking at $f" | ||
+ | if [ "$f" = "cpuset" ]; then | ||
+ | echo 1 | sudo tee -a $d/cgroup.clone_children; | ||
+ | elif [ "$f" = "memory" ]; then | ||
+ | echo 1 | sudo tee -a $d/memory.use_hierarchy; | ||
+ | fi | ||
+ | sudo mkdir -p $d/$USER | ||
+ | sudo chown -R $USER $d/$USER | ||
+ | echo $$ > $d/$USER/tasks | ||
+ | done</code> | ||
+ | |||
+ | |||
+ | * Lancement | ||
<code user>lxc-start -n test -d</code> | <code user>lxc-start -n test -d</code> | ||