Docker は MirageOS のようなエクソカーネル アプローチとどのように関連していますか?
MirageOS の詳細については、次を参照してください。
Docker は MirageOS のようなエクソカーネル アプローチとどのように関連していますか?
MirageOS の詳細については、次を参照してください。
それは非常に異なっています。
Mirage は仮想マシン上のアプリケーションを効果的に取得し、アプリケーションに必要なシステムの部分だけを残すように削除します。その結果、ハイパーバイザーのみを実行する必要がある非常に小さな VM が作成されます。VM のように他のすべてのマシンから分離されているため、それぞれが独自のマシンです。
Docker は、union ファイルシステムを使用して可能な限り共有することでリソースを節約します。写真にはまだフルサイズのオペレーティング システムが少なくとも 1 つありますが、その基本イメージを使用するすべてのコンテナー間で共有されています。すべてのコンテナーは、単一のホスト オペレーティング システム内で実行され、個別の VM ではなく、コンテナーや名前空間などの Linux メカニズムを使用して互いに分離されています。
このLinux News articleには、Docker と VM の違いがよくわかります。Mirage が採用したアプローチは、VM (左側の図) を非常に小さくすることです。
要するに: Mirage は縮小します。Docker 共有.
免責事項: 私はエキソカーネルの概念を知らず、ウィキペディアでそれらについて読んだだけです。しかし、私は Docker を知っており、これが私がそれをまとめる方法です。
エキソカーネルは、可能な限り抽象化を減らします。アプリケーションがマシンのハードウェアと直接通信できるようにします。http://en.wikipedia.org/wiki/Exokernelを参照してください。
他のサイトのDockerはまったく逆です。これは、既存のオペレーティング システムの上に構築された別の抽象化です。したがって、Docker は (Linux を使用して) ハードウェアを抽象化するだけでなく、異なるマシンに同じ環境を提供することでオペレーティング システムも抽象化します (たとえば、CentOS マシンで Ubuntu コンテナーを実行できます)。
したがって、Docker はエクソカーネルとは正反対です。それはより多くの抽象化を目指していますが、エキソカーネルは逆の方向に進み、可能な限り抽象化しないようにしています。
両者の間にそれ以上の関係は見られません。