Docker加载内核模块
我试图安装一个内核模块,Docker加载内核模块,docker,kernel,kernel-module,Docker,Kernel,Kernel Module,我试图安装一个内核模块,xfsprogs。它已成功安装在容器中。这确实令人惊讶,但是lsmod没有在容器内或主机系统中列出此模块。 如何将新内核模块加载到容器中?(CentOScontainer,Ubuntuhost)容器通过系统调用与内核交互,并且不包括内核的任何部分或容器中的内核模块。这就是为什么集装箱设计为重量轻、便于携带的原因之一。XFSProg也是用户空间程序,而不是内核模块 如何在容器中加载新内核模块?(CentOS容器,Ubuntu主机) 模块需要加载到主机操作系统上,而不是从do
xfsprogs
。它已成功安装在容器中。这确实令人惊讶,但是lsmod
没有在容器内或主机系统中列出此模块。
如何将新内核模块加载到容器中?(
CentOS
container,Ubuntu
host)容器通过系统调用与内核交互,并且不包括内核的任何部分或容器中的内核模块。这就是为什么集装箱设计为重量轻、便于携带的原因之一。XFSProg也是用户空间程序,而不是内核模块
如何在容器中加载新内核模块?(CentOS容器,Ubuntu主机)
模块需要加载到主机操作系统上,而不是从docker容器中加载。- 以特权模式运行容器(--privileged)
- 添加所有功能(--cap Add=all)
- 将主机/lib/模块装入容器(-v/lib/modules:/lib/modules)
docker-run--name-container\u-name--privileged--cap add=ALL-d\
-v/dev:/dev-v/lib/modules:/lib/modules image\u 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
xfsprogs
是一个包,由用户空间库提供lsmod
显示当前加载到内核中的内核模块。但是xfs
fs需要什么模块呢。“支持”?为了使系统能够装载使用xfs
格式化的文件系统,您需要在启用xfs模块的情况下构建内核(在配置文件中)。如果sudo modprobe xfs
(在主机上运行)报告找不到模块的错误,那么您的内核不支持xfs文件系统。我明白了,但是我如何在主机上修复它(禁用的xfs模块)?在内核中启用xfs
模块的唯一干净方法是重建内核(从Docker的内核源代码)包含配置文件CONFIG\u XFS\u FS:=m
。如果由于某种原因无法使用此方法。。其他方法只是黑客,并不简单。当你运行windows或macosx版本的docker时,应该使用什么?moby linux内核模块在哪里?在docker toolbox for windows下运行boot2docker linux主机的docker toolbox中,您可以通过ssh连接到它并查看/lib/modules下的模块。我想我不清楚您的答案。因此,如果我在Mac上运行,则没有/lib/modules目录。在运行Docker守护程序的基础VM上可能存在漏洞。但是当您在这里使用-v parm时,我的理解是它访问的是主机(Mac)系统,而不是VM。