2015-10-08 16 views
7

Ho provato a installare un modulo del kernel, xfsprogs. È stato installato con successo all'interno di un container. È davvero sorprendente, ma lsmod non elenca questo modulo all'interno del contenitore o nel sistema host. Come può un nuovo modulo del kernel caricati in un contenitore? (CentOS contenitore, Ubuntu host)Docker caricamento moduli kernel

+0

'xfsprogs' è un ** pacchetto **, fornito librerie dello spazio utente ** **. 'lsmod' mostra ** moduli del kernel **, attualmente caricati nel kernel. – Tsyvarev

+0

Ma allora qual è il modulo necessario per 'xfs' fs. "supporto"? –

+1

Per rendere il sistema in grado di montare i filesystem formattati con 'xfs', è necessario compilare il kernel con il modulo xfs abilitato (nel file di configurazione). Se 'sudo modprobe xfs' (in esecuzione su una macchina host) riporta l'errore che il modulo non è stato trovato, il tuo kernel non ha supporto per il filesystem xfs. – Tsyvarev

risposta

7

contenitori interagiscono con il kernel tramite chiamate di sistema e non includono alcuna parte del kernel o dei moduli del kernel all'interno del contenitore. Questo è uno dei motivi per cui i contenitori sono progettati per essere leggeri e portatili. Anche xfsprogs sono programmi spaziali dell'utente e non moduli del kernel.

Come può un nuovo modulo del kernel caricati in un contenitore? (CentOS contenitore, ospite Ubuntu)

Il modulo deve essere caricato sul vostro sistema operativo host, e non dal contenitore finestra mobile.

7
  • Esegui il contenitore in modalità privilegiata (--privileged)
  • Aggiungi tutte le capacità (--cap-add = ALL)
  • mount host/lib/modules nel contenitore (-v/lib/moduli:/lib/modules)

docker run --name container_name --privileged --cap-add=ALL -d -v /dev:/dev -v /lib/modules:/lib/modules image_id

Ecco tutte le funzionalità di Linux è aggiunto in modo funzionalità può essere raffinato.

+1

cosa dovrebbe essere usato quando si esegue una versione di Windows o macosx di finestra mobile? Dove sono i moduli del kernel moby linux? – user725408

+0

In docker toolbox per windows, che esegue l'host linux boot2docker sotto di esso, è possibile eseguire l'ssh in esso e vedere i moduli in/lib/modules –

1

Falco è un esempio di contenitore che carica un modulo del kernel come parte del suo processo di avvio.

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