2016-05-27 11 views
0

Ich habe eine Anwendung, die Kernel-Space-Code haben und es ist in Linux Kernel 2.6.32-431.el6.x86_64 (Centos 6.5) kompiliert. Dann wird es als Kernelmodul installiert, um die Anwendung auszuführen. Als ich versuchte, meine Anwendung mit Docker zu containerisieren (die in der Amazon Linux AWS EC2-Instanz installiert ist), beschwert sie sich, dass die höhere Kernel-Version nicht mit dem Modul kompatibel ist. Muss ich Docker in einem Host installieren, der die Kernel-Version 2.6.32-431.el6.x86_64 hat? Wenn ja, hängen unsere Container von einer bestimmten Host-Maschine ab?Hängt der Container von einem bestimmten Host ab?

Antwort

1

Container enthalten die Anwendung und alle ihre Abhängigkeiten, aber teilen den Kernel mit anderen Containern. Sie werden als isolierter Prozess im Benutzerbereich des Host-Betriebssystems ausgeführt.

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

Docker-Container Host-Kernel verwenden. Sie können die gleiche Version des Kernels installieren, die im Container als Host-Kernel benötigt wird, aber Sie können den CentOS6-kompilierten Kernel nicht auf Amazon Linux ausführen.

In Anbetracht Ihrer spezifischen Anwendungsanforderungen würde ich vorschlagen, eine "echte" Virtualisierungslösung wie XEN oder KVM zu verwenden, mit der Sie Ihren eigenen Kernel in einer VM verwenden können.

Verwandte Themen