我Juste Juste安装了一个自定义内核模块,以在我的MacBook上启用SCTP支持
我想将此内核模块加载到我的码头容器中。
我尝试使用 - cap-add sys_module flag启动一个容器,然后安装 libsctp-dev lksctp-tools kmod kmod package package " modprobe 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主机上,有人建议这样做:Docker加载内核模块,但与MacOS不兼容和" Dirty" ...
所以我的问题是:有人知道如何使用MacOS主机在Docker容器中使用内核模块吗?这是可能的吗?
我发现Mac的Docker与Alpine一起在HyperKit VM上运行以获取Linux内核。
正如@danlowe在评论中提到的,我们可以使用以下命令访问此VM:docker run --rm -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
此VM使用的内核源可在此处找到:https://github.com/linuxkit/linuxkit
我编辑了 kernel/kernel_config 文件和set config_ip_sctp = y 启用内核中的SCTP支持。
然后,我重新编译了内核,并将新汇编的内核文件(bzimage(复制到Mac /applications/docker.app/contents/contents/resources/moby/moby/vmlinuz64 kernel文件中的docker。>
Mac和...
重新启动Docker
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 y y y y y y y y y y y y n y y y y y y
SCTP 1256 0 0 no 0 yes kernel y y y y y y y y y y y y n y y y y y y
在这里拉请。