我尝试安装内核模块xfsprogs
。它已成功安装在容器内。这确实令人惊讶,但lsmod
未在容器或主机系统中列出此模块。
如何在容器中加载新的内核模块?(CentOS
容器,Ubuntu
主机)
答案 0 :(得分:11)
容器通过系统调用与内核交互,不包含内核的任何部分或容器内的内核模块。这是容器设计重量轻且便于携带的原因之一。 xfsprogs也是用户空间程序而不是内核模块。
如何在容器中加载新的内核模块?(CentOS容器,Ubuntu主机)
模块需要加载到主机操作系统上,而不是加载到docker容器中。
答案 1 :(得分:11)
docker run --name container_name --privileged --cap-add=ALL -d -v /dev:/dev -v /lib/modules:/lib/modules image_id
此处添加了所有Linux功能,因此可以改进功能。
答案 2 :(得分:1)
Falco是一个容器的示例,它将内核模块作为其启动过程的一部分加载。
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