logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

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
Prochaine révision Les deux révisions suivantes
doc:autres:vm:lxc:mode-utilisateur [24/06/2018 21:33]
captnfab [Préparation]
doc:autres:vm:lxc:mode-utilisateur [12/07/2018 11:16]
captnfab
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 à 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 + 
-sysctl -w sys.kernel.unprivileged_userns_clone=1 +Créer le fichier de configuration de sysctl ​suivant : 
-sysctl -w net.bridge.bridge-nf-call-arptables=0 +<code ini /​etc/​sysctl.d/​40-lxc-userns.conf> 
-sysctl -w net.bridge.bridge-nf-call-iptables=0 +kernel.unprivileged_userns_clone=1 
-sysctl -w net.bridge.bridge-nf-call-ip6tables=0+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 : 
 +<code root>​sysctl --sys</​code>​ 
 + 
 +Pour l'​instant,​ les cgroups nécessaires ne sont pas créés par défaut. Créer le fichier suivant : 
 +<code bash /​usr/​local/​sbin/​prepare-lxc-cgroups>#​!/​bin/​sh 
 +LXC_USERS=$(cat /​etc/​lxc/​lxc-users) 
 +for d in /​sys/​fs/​cgroup/​* 
 +do 
 +  f=$(basename $d) 
 +  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 
 +  for u in $LXC_USERS 
 +  do 
 +    mkdir -p $d/$u 
 +    chown -R $u $d/$u 
 +  done 
 +done 
 +</​code>​ 
 + 
 +Et rajouter ''​lxcuser-test''​ dans le fichier ''/​etc/​lxc/​lxc-users''​. S'il y a plusieurs utilisateurs,​ ils doivent être séparés par un espace. 
 + 
 +Que l'on lancera automatiquement via systemd en créant ce service : 
 +<code ini /​etc/​systemd/​system/​lxc-cgroups.service>​ 
 +[Unit]
 Description=Préparation cgroups pour lxc Description=Préparation cgroups pour lxc
 After=local-fs.target After=local-fs.target
 + 
 [Service] [Service]
 Type=oneshot Type=oneshot
 RemainAfterExit=yes RemainAfterExit=yes
 ExecStart=/​usr/​local/​sbin/​prepare-lxc-cgroups ExecStart=/​usr/​local/​sbin/​prepare-lxc-cgroups
 +  ​
 [Install] [Install]
-WantedBy=multi-user.target</​code>​+WantedBy=multi-user.target 
 +</​code>​
  
 +Et en l'​activant
 <code root>​chmod a+x /​usr/​local/​sbin/​prepare-lxc-cgroups <code root>​chmod a+x /​usr/​local/​sbin/​prepare-lxc-cgroups
 systemctl enable /​etc/​systemd/​system/​lxc-cgroups.service systemctl enable /​etc/​systemd/​system/​lxc-cgroups.service
 systemctl daemon-reload systemctl daemon-reload
 systemctl start lxc-cgroups</​code>​ systemctl start lxc-cgroups</​code>​
- 
  
 ===== Création du conteneur ===== ===== Création du conteneur =====
Ligne 179: Ligne 210:
 ===== Utilisation du conteneur ===== ===== Utilisation du conteneur =====
  
-  ​Création+Il faut, en tant que ''​lxcuser-test'',​ lancer le script suivant avant de lancer le conteneur. 
 +<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>​ 
 +Via la commande 
 +<code user>​move-pid-to-cgroup $$</​code>​ 
 + 
 +  * Lancement
 <code user>​lxc-start -n test -d</​code>​ <code user>​lxc-start -n test -d</​code>​
  
doc/autres/vm/lxc/mode-utilisateur.txt · Dernière modification: 18/11/2020 20:51 par captnfab

Pied de page des forums

Propulsé par FluxBB