Docker загрузка модулей ядра

Я попытался установить модуль ядра, xfsprogs. Он был успешно установлен внутри контейнера. Это действительно удивительно, но lsmod Не список этот модуль внутри контейнера или в хост-системе. Как новый модуль ядра может быть загружен в контейнер?(CentOS контейнер Ubuntu host)

3 ответов


контейнеры взаимодействуют с ядром через системные вызовы и не включают какую-либо часть ядра или модулей ядра внутри контейнера. Это одна из причин, почему контейнеры разработаны, чтобы быть легким и портативным. Также xfsprogs - это пользовательские космические программы, а не модули ядра.

Как новый модуль ядра загружается в контейнер?(Контейнер CentOS, хост Ubuntu)

модуль должен быть загружен на хост-ОС, а не от контейнер докера.


  • запустите контейнер в привилегированном режиме (--privileged)
  • добавить все возможности (--cap-add=ALL)
  • установите хост / lib / модули в контейнер (- v /lib/modules:/lib/modules)

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

здесь добавлены все возможности linux, поэтому возможности могут быть уточнены.


Фалько - пример контейнера, который загружает модуль ядра как часть процесса запуска.

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