我有一个具有内核空间代码的应用程序,它在linux内核2.6.32-431.el6.x86_64
(centos 6.5)中编译。然后将其安装为内核模块以运行应用程序。当我尝试将我的应用程序用Docker(安装在Amazon Linux AWS EC2实例中)容器化时,它抱怨更高的内核版本与模块不兼容。我是否必须在内核版本为2.6.32-431.el6.x86_64
的主机中安装Docker?如果是,我们的容器是否依赖于特定的主机?
答案 0 :(得分:1)
容器包括应用程序及其所有依赖项,但与其他容器共享内核。它们在主机操作系统的用户空间中作为独立进程运行。
https://www.docker.com/what-docker
Docker容器使用主机内核。您可以在容器中安装与主机内核相同的内核版本,但是您将无法在Amazon Linux上运行CentOS6编译的内核。
考虑到您的具体应用要求,我建议您使用 “真正的”虚拟化解决方案,如XEN或KVM,允许您在VM中使用自己的内核。