从mac os sierra主机加载内核模块到docker容器

我已经安装了一个自定义的内核模块来启用我的Macbook上的SCTP支持

我想在Docker容器中加载这个内核模块。

我尝试使用–cap-add SYS_MODULE标志启动一个容器,并在容器中安装libsctp-dev lksctp-tools kmod软件包以使用“modprobe sctp”启用sctp …但是失败:

modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.9.13-moby/modules.dep.bin' modprobe: FATAL: Module SCTP not found in directory /lib/modules/4.9.13-moby 

在Linux主机上,有人build议做这样的事情: Docker加载内核模块,但它不兼容macOS和“脏”…

所以我的问题是:有谁知道如何在使用macOs主机的docker容器中使用内核模块? 这甚至可能吗?

我发现mac的docker运行在一个hyperkit的虚拟机上,用alpine来获得linux内核。

正如@DanLowe在评论中提到的,我们可以使用下面的命令来访问这个虚拟机: docker run --rm -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh

这个虚拟机使用的内核源代码在这里: https : //github.com/linuxkit/linuxkit

我编辑了内核/ kernel_config文件,并设置CONFIG_IP_SCTP = y在内核中启用SCTP支持。

然后我重新编译内核,并将我新编译的内核文件(bzImage)复制到mac /Applications/Docker.app/Contents/Resources/moby/vmlinuz64内核文件的docker中

重新启动docker为Mac和…

host>docker run -it debian container>cat /proc/net/protocols protocol size sockets memory press maxhdr slab module cl co di ac io in de sh ss gs se re sp bi br ha uh gp em SCTPv6 1416 1 0 no 0 yes kernel yyyyyyyyyyyynyyyyyy SCTP 1256 0 0 no 0 yes kernel yyyyyyyyyyyynyyyyyy

拉请求在这里 。