J'ai essayé d'installer un module du noyau, xfsprogs
. Il a été installé avec succès à l'intérieur d'un conteneur. C'est vraiment surprenant, mais lsmod
ne répertorie pas ce module dans le conteneur ou dans le système hôte. Comment un nouveau module de noyau peut-il être chargé dans un conteneur? (CentOS
container, Ubuntu
Host)
Les conteneurs interagissent avec le noyau via des appels système et n'incluent aucune partie du noyau ou des modules du noyau à l'intérieur du conteneur. C'est l'une des raisons pour lesquelles les conteneurs sont conçus pour être légers et portables. Les xfsprogs sont également des programmes d'espace utilisateur et non des modules du noyau.
Comment un nouveau module de noyau peut-il être chargé dans un conteneur? (Conteneur CentOS, hôte Ubuntu)
Le module doit être chargé sur votre système d'exploitation hôte, et non à partir du conteneur Docker.
docker run --name container_name --privileged --cap-add=ALL -d -v /dev:/dev -v /lib/modules:/lib/modules image_id
Ici, toutes les capacités Linux sont ajoutées afin que les capacités puissent être affinées.
Falco est un exemple de conteneur qui charge un module du noyau dans le cadre de son processus de démarrage.
docker run -i -t --name falco --privileged \
-v /var/run/docker.sock:/Host/var/run/docker.sock \
-v /dev:/Host/dev \
-v /proc:/Host/proc:ro \
-v /boot:/Host/boot:ro \
-v /lib/modules:/Host/lib/modules:ro \
-v /usr:/Host/usr:ro \
sysdig/falco