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