docker linux容器不支持驱动开发?

docker linux container doesn't support driver development?

开发驱动程序需要/lib/modules//build目录。但是我在docker下找到了centos的镜像,我

之后竟然
yum install kernel-devel

仍然没有包含所有内容的目录。问题:

(1)如何在dockerlinux环境下开发驱动程序?

(2)这个开发的模块可以加载吗?

Docker不是虚拟机。

Ubuntu 和 docker 不是真实的 ubuntu。

如果你想用ubuntu开发,你应该使用virtualbox或vmware。

查看this link了解更多信息

Docker 使用主机内核。

阅读此页后,我几乎放弃了在 Docker 中构建内核模块,所以我添加了这个答案,希望它能对某人有所帮助。另见 what-is-the-difference-between-kernel-drivers-and-kernel-modules

只要构建所需的内核源在 Docker 中可用,您就可以在 Docker 中构建内核模块。假设您要针对 yum 存储库中可用的最新内核源进行构建,您可以使用 yum install kernel-devel 安装内核源。源将在 /usr/src/kernels/<version> 目录中。如果需要,您可以从您的存储库安装特定版本的 kernel-devel

然后使用 $ make -C <path_to_kernel_src> M=$PWD 构建模块,其中内核源代码的路径为 /usr/src/kernels/<version>.

阅读 - Kernel Build System » Building External Modules

Docker 容器使用宿主机的内核,所以如果你想针对 运行ning 内核构建,即 Docker 宿主机的内核,你可以尝试 运行 在特权模式下安装容器并安装模块目录。 docker run --name container_name --privileged --cap-add=ALL -v /dev:/dev -v /lib/modules:/lib/modules image_id

您不应在与构建模块的内核不同的内核上加载模块。您可以强制安装它,但强烈建议不要这样做。请记住您的 运行ning 内核,即 Docker 主机内核,是 Docker 容器的内核,无论您安装的是什么 kernel-devel 版本。

要查看模块构建(或构建使用)的内核,运行 modinfo <module> 并查找 vermagic 值。

Dynamic Kernel Module Support 也值得一读。