Es ist sehr anders.
Mirage nimmt eine Anwendung effektiv auf einer virtuellen Maschine und entfernt sie, um nur die Teile des Systems zu belassen, die für die App benötigt werden. Das Ergebnis ist eine sehr kleine VM, die nur einen Hypervisor ausführen muss. Jeder ist eine Maschine für sich, so isoliert von allen anderen, wie es eine VM überhaupt ist.
Docker spart Ressourcen, indem es so viel wie möglich mit Union-Dateisystemen teilt. Es ist immer noch mindestens ein Betriebssystem in voller Größe im Bild, aber es wird von allen Containern geteilt, die dieses Basisbild verwenden. Alle Container laufen innerhalb eines einzigen Host-Betriebssystems und sind voneinander durch Linux-Mechanismen wie Container und Namespaces isoliert, anstatt sich in separaten VMs zu befinden.
Es gibt eine gute Illustration des Unterschieds zwischen Docker und einer VM in diesem Linux News Artikel . Der Ansatz von Mirage besteht darin, die VMs (im linken Bild) sehr klein zu machen.
Kurz gesagt: Mirage schrumpft; Docker teilt .
Haftungsausschluss : Ich kannte das Konzept von exokinternels nicht und habe nur über Wikipedia gelesen. Aber ich kenne Docker und so würde ich es zusammensetzen.
Exokennels bieten so wenig Abstraktion wie möglich. Sie ermöglichen es Anwendungen, direkt mit der Hardware einer Maschine zu kommunizieren. Siehe Ссылка .
Docker auf der anderen Seite ist das Gegenteil. Es ist eine weitere Abstraktion, die auf einem bestehenden Betriebssystem aufbaut. So abstrahiert Docker nicht nur die Hardware (unter Linux), sondern abstrahiert auch das Betriebssystem, indem dieselbe Umgebung auf verschiedenen Rechnern bereitgestellt wird (z. B. kann ein Ubuntu-Container auf einem CentOS-Rechner laufen).
Also würde ich sagen, Docker ist sehr exogen zu exokennels. Es zielt darauf ab, viel mehr zu abstrahieren, während exokennels in die andere Richtung zu gehen scheint und so wenig wie möglich zu abstrahieren versucht.
Ich sehe keine weiteren Beziehungen zwischen beiden.