我正在运行Docker for Windows(类似的效果如下所述在MacOSX上可观察到)我有一个Docker容器,其中一个程序试图访问一个squashfs图像。 要访问squashfs,内核必须或者静态地支持loopdevice支持或者加载相关的内核模块。 当我尝试装载镜像或设置循环设备时,docker容器之间共享的内核找不到loopdevice模块。 我可以使用unsquashfs工具,但squashfs图像是有原因的:squashfs有一个非常体面的属性:它允许无限数量的文件和inode – 如果我试图解压缩图像,我很快打到图像的inode限制。 docker是一个静态编译内核的Moby Linux内核吗? 要访问其/ lib /模块,需要装入多less卷? 运行在特权容器中的lsmod
列出没有加载的模块。 试图modprobe loop
产生以下错误信息:
root@6e1b23cc65e5:/# modprobe loop modprobe: ERROR: ../libkmod/libkmod.c:556 kmod_search_moddep() could not open moddep file '/lib/modules/4.9.8-moby/modules.dep.bin'