容器是否依赖于特定的主机?

我有一个具有内核空间代码的应用程序,它在Linux内核2.6.32-431.el6.x86_64 (centos 6.5)中编译。 然后将其作为内核模块安装以运行该应用程序。 当我尝试使用Docker(安装在Amazon Linux AWS EC2实例中)容纳我的应用程序时,它抱怨更高的内核版本与模块不兼容。 是否我必须将Docker安装在内核版本为2.6.32-431.el6.x86_64的主机上? 如果是,我们的容器是否依赖于特定的主机?

容器包含应用程序及其所有依赖项,但与其他容器共享内核。 它们作为主机操作系统上的用户空间中的隔离进程运行。

https://www.docker.com/what-docker

Docker容器使用主机的内核。 您可以在容器中安装与主机内核相同版本的内核,但是您将无法在Amazon Linux上运行CentOS6编译的内核。

考虑到您的具体应用需求,我会build议使用“真正的”虚拟化解决scheme,如XEN或KVM,允许您在虚拟机中使用自己的内核。