web-dev-qa-db-fra.com

LXC renvoie une erreur lors de la création de nouveaux conteneurs sans privilège

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.

2
Kevin Teljeur

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.

2
Kevin Teljeur

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.

1