J'ai récemment migré vers un nouveau serveur (Ubuntu 14.04, dédié, pas virtuel) et installé LXC 1.1.2. LXC a été configuré sur mon serveur précédent sans problème, mais sur le nouveau serveur, je rencontre régulièrement un problème de création de conteneurs non privilégiés (tout comme je ne parviens pas à démarrer les conteneurs migrés). Avec un compte utilisateur nouvellement créé, j'obtiens systématiquement l'erreur suivante:
unshare: Operation not permitted
read pipe: Permission denied
lxc-create: lxccontainer.c: do_create_container_dir: 778 Failed to chown container dir
lxc-create: lxc_create.c: main: 274 Error creating container container-template-ubuntu-14.04-7
J'ai suivi certaines des instructions ici: https://www.stgraber.org/2014/01/17/lxc-1-0-unprivileged-containers/ et fouillé dans /proc/sys/kernel/
mais cela ne semble pas avoir aidé. Je ne sais pas quoi d'autre je peux essayer.
La raison pour laquelle cela ne fonctionnait pas s’est avéré être le noyau fourni avec la version Ubuntu installée par le fournisseur d’hébergement (SoYouStart/OVH). Ce noyau a moins de fonctionnalités activées, y compris celles requises par LXC. J'avais installé un noyau Linux générique, mais je ne l'avais pas mis à jour correctement.
Après avoir suivi les étapes de sélection du noyau générique, de mise à jour de grub et de redémarrage, LXC a fonctionné comme prévu. J'espère que cela aide quelqu'un dans une situation similaire.
J'ai eu le même problème avec Debian 9 et ce fil de discussion était toujours au-dessus des résultats de duckduckgo. Je recommande donc de donner une solution à un problème Debian sur askubuntu, mais cela peut également aider les utilisateurs Ubuntu:
Après avoir installé LXC (apt install lxc
), vérifiez le résultat de cette commande:
# cat /proc/sys/kernel/unprivileged_userns_clone
Si c'est 0
, alors vous devrez peut-être faire ceci:
# echo "kernel.unprivileged_userns_clone=1" > /etc/sysctl.d/80-lxc-userns.conf
# sysctl --system
Il a vu cette "astuce" dans la page LXC du wiki Debian et cela a fonctionné pour moi.
Remarque: si cela ne résout pas le problème pour vous, supprimez simplement /etc/sysctl.d/80-lxc-userns.conf
et relancez sysctl --system
pour annuler cette modification.