2 votes

Impossible de supprimer un sous-volume btrfs dans Docker

J'ai une partition btrfs (montée sur /srv ) sur mon système hôte avec un sous-volume ( old ). Je voudrais le gérer à partir d'un conteneur docker (je l'ai lancé avec -v /srv:/srv ).

Alors que je suis parfaitement capable d'en créer un instantané, je ne peux pas répertorier d'autres sous-volumes et/ou les supprimer :

user@host:~$ docker exec -ti jenkins-slave bash
root@a5496f6bd14b:~# btrfs subvolume snapshot /srv/old /srv/new
Create a snapshot of '/srv/old' in '/srv/new'
root@a5496f6bd14b:~# ls /srv
new old
root@a5496f6bd14b:~# btrfs subvolume delete /srv/new
Delete subvolume (no-commit): '/srv/new'
ERROR: cannot delete '/srv/new': Operation not permitted
root@a5496f6bd14b:~# btrfs subvolume list /srv/new
ERROR: can't perform the search - Operation not permitted
root@a5496f6bd14b:~# ls /srv
new old

Alors que je suis toujours capable de le faire depuis le système hôte.

1voto

user279360 Points 11

Il semble que ce comportement soit dû à un paramètre de configuration de Docker.

J'ai réussi à le faire fonctionner en ajoutant la "capacité Linux" CAP_SYS_ADMIN au moment de l'exécution de Docker.

docker run -d -t --cap-add SYS_ADMIN -v /mnt.btrfs:/mnt.btrfs debbtrfs

CAP_SYS_ADMIN
Effectuer une série d'opérations d'administration système, notamment : quotactl(2), mount(2), umount(2), swapon(2), swapoff(2), sethostname(2) et setdomainname(2).

Il existe toute une série d'autres "Capacités Linux", dont une description détaillée de CAP_SYS_ADMIN que l'on peut trouver dans les pages de manuel :

$ man 7 capabilities

Les capacités par défaut de Docker et celles qui peuvent être ajoutées ou supprimées sont indiquées ici, sous la rubrique " Runtime privilege and Linux capabilities " :
https://docs.docker.com/engine/reference/run/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X