最近发现Docker很火啊,好像所有的服务都可以放到Docker里面来跑。貌似Docker也分很多不同的系统,Docker也是一种虚拟机(VM)技术吗?我看Docker的镜像都很小,是不是一种简化的虚拟机呢?
人生最曼妙的风景,竟是内心的淡定与从容!
Docker は、完全仮想化や準仮想化と比較して、オペレーティング システム レベルでのいわゆる軽量の仮想化テクノロジです。従来の仮想化テクノロジーは環境の生成に非常に時間がかかり、docker の場合、起動と破棄は数秒以内に行われますが、依存する基盤テクノロジーである lxc (Linux コンテナー) は、中間層のオーバーヘッドのない完全なカーネル機能です。非常に高く、物理マシンに近いパフォーマンスを実現します。もちろん、docker は現在 lxc に依存しているため、Linux 上でのみ実行できます (現在、mac osx もサポートしていますが、Linux 仮想マシンを作成するには virtualbox を使用するだけです。信じてください、今は mac でそれを使用する必要はありません)つまり、docker 開発の場合でも、vagrant の方が適していると思います。昨日、boot2docker mac ツールを試してみましたが、エクスペリエンスは非常に悪かったです。
質問で言及されているいわゆるさまざまなシステムは、実際にはdockerによって維持されるイメージです。これはlxcには必要ありませんが、dockerはアプリケーション環境を保存し、依存関係のない環境の配布を容易にするためにこのイメージのセットを維持します。さらに、あなたが言った docker イメージが非常に小さいというのは正確ではありません。docker イメージのサイズはアプリケーションによって決まります。つまり、任意のサイズにすることができます。
Docker はすべてに適しているわけではありません。精度が要求されるタスクには docker は適していません。また、docker は現在急速に発展していると思います。機能はすぐに強化されます。
Docker は、アプリケーションとアプリケーションの依存関係を含む環境全体をパッケージ化するアプリケーション コンテナーであると考えることができ、これにより、各開発者は同じバージョンのコンテナーを使用する必要がなくなります。さまざまなバージョンに依存しており、自分でバージョンを保守することを心配する必要がないため、落とし穴に陥ります。
64 ビット Linux では、Docker は仮想マシンを使用しないため、パフォーマンスは非常に優れています。 64 ビット Linux システム以外のシステム (Windows、Mac OS X を含む) では、Docker は仮想マシン テクノロジを利用します。
Docker は、サービスとしてのプラットフォームである PAAS を実現します。Docker は、VM と比較して軽量な仮想化である lxc カーネル仮想化を使用し、ホストと同じ操作を共有できます。システムに仮想化用の AUFS と lXC があり、ubuntu イメージの追加には 265 MB が必要です。1,000 個の新しい VM ホストを作成する場合、265,000 MB のメモリが必要になりますが、Docker の共有容量は 256 を少し上回るだけです。 Linux VMware で実行すると、ホストのメモリ消費量が比較的大きいことがわかると思います。Amazon EC2 512MB メモリのシングルコア クラウド ホストは、5 つの VMware を実行すると、非常に手間がかかります。
以前見た記事がとても詳しく書かれていました。 http://tiewei.github.io/cloud/Docker-Getting-Start/
Docker は、プロセス レベルの仮想化ソリューションである LXC に基づいています。ホスト マシンの観点から見ると、実行中の各 Docker はプロセスです。
Xen/OpenVZ はシステムレベルの仮想化ソリューションです。ホスト マシンの観点からは、各仮想マシンが許可されます。
より詳細な比較は次のとおりです: http://goldmann.fedorapeople.org/tmp/docker-preso/#/5
Docker は、完全仮想化や準仮想化と比較して、オペレーティング システム レベルでのいわゆる軽量の仮想化テクノロジです。従来の仮想化テクノロジーは環境の生成に非常に時間がかかり、docker の場合、起動と破棄は数秒以内に行われますが、依存する基盤テクノロジーである lxc (Linux コンテナー) は、中間層のオーバーヘッドのない完全なカーネル機能です。非常に高く、物理マシンに近いパフォーマンスを実現します。もちろん、docker は現在 lxc に依存しているため、Linux 上でのみ実行できます (現在、mac osx もサポートしていますが、Linux 仮想マシンを作成するには virtualbox を使用するだけです。信じてください、今は mac でそれを使用する必要はありません)つまり、docker 開発の場合でも、vagrant の方が適していると思います。昨日、boot2docker mac ツールを試してみましたが、エクスペリエンスは非常に悪かったです。
質問で言及されているいわゆるさまざまなシステムは、実際にはdockerによって維持されるイメージです。これはlxcには必要ありませんが、dockerはアプリケーション環境を保存し、依存関係のない環境の配布を容易にするためにこのイメージのセットを維持します。さらに、あなたが言った docker イメージが非常に小さいというのは正確ではありません。docker イメージのサイズはアプリケーションによって決まります。つまり、任意のサイズにすることができます。
Docker はすべてに適しているわけではありません。精度が要求されるタスクには docker は適していません。また、docker は現在急速に発展していると思います。機能はすぐに強化されます。
Docker は、アプリケーションとアプリケーションの依存関係を含む環境全体をパッケージ化するアプリケーション コンテナーであると考えることができ、これにより、各開発者は同じバージョンのコンテナーを使用する必要がなくなります。さまざまなバージョンに依存しており、自分でバージョンを保守することを心配する必要がないため、落とし穴に陥ります。
64 ビット Linux では、Docker は仮想マシンを使用しないため、パフォーマンスは非常に優れています。 64 ビット Linux システム以外のシステム (Windows、Mac OS X を含む) では、Docker は仮想マシン テクノロジを利用します。
Docker は、サービスとしてのプラットフォームである PAAS を実現します。Docker は、VM と比較して軽量な仮想化である lxc カーネル仮想化を使用し、ホストと同じ操作を共有できます。システムに仮想化用の AUFS と lXC があり、ubuntu イメージの追加には 265 MB が必要です。1,000 個の新しい VM ホストを作成する場合、265,000 MB のメモリが必要になりますが、Docker の共有容量は 256 を少し上回るだけです。 Linux VMware で実行すると、ホストのメモリ消費量が比較的大きいことがわかると思います。Amazon EC2 512MB メモリのシングルコア クラウド ホストは、5 つの VMware を実行すると、非常に手間がかかります。
以前見た記事がとても詳しく書かれていました。
http://tiewei.github.io/cloud/Docker-Getting-Start/
Docker は、プロセス レベルの仮想化ソリューションである LXC に基づいています。ホスト マシンの観点から見ると、実行中の各 Docker はプロセスです。
Xen/OpenVZ はシステムレベルの仮想化ソリューションです。ホスト マシンの観点からは、各仮想マシンが許可されます。
より詳細な比較は次のとおりです: http://goldmann.fedorapeople.org/tmp/docker-preso/#/5