違い: 1. 起動速度の点では、Docker は 2 番目のレベルですが、kvm は 1 分レベルです; 2. kvm と比較して、Docker アプリケーションのパフォーマンスが高く、システムのオーバーヘッドが小さいです; 3. ステータスの保存の点では、Docker は kvm よりも移植性が高く、低コストです; 4. ハードディスクの使用量の点では、Docker は MB 単位で測定され、kvm は GB 単位で測定されます。
このチュートリアルの動作環境: linux5.9.8 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
Docker プロジェクトの目標は、軽量のオペレーティング システム仮想化ソリューションを実装することです。 Docker は、Linux Containers (LXC) などのテクノロジーに基づいています。
LXC をベースに、Docker はさらにカプセル化することで、ユーザーがコンテナ管理を意識する必要がなく、運用が容易になりました。 Docker コンテナを操作するユーザーは、高速で軽量な仮想マシンを操作するのと同じくらい簡単です。
下の図は、Docker と従来の仮想化手法の違いを比較したものです。コンテナはオペレーティング システム レベルで仮想化を実装し、ローカル ホストのオペレーティング システムを直接再利用するのに対し、従来の手法は仮想化をオペレーティング システム レベルで実装していることがわかります。ハードウェア レベル、レベルの実装。
新興の仮想化手法である Docker には、従来の仮想化手法と比較して多くの利点があります。
1. Docker コンテナは数秒で起動でき、従来の仮想マシン方式よりもはるかに高速です。次に、Docker はシステム リソースの使用率が高く、1 つのホスト上で数千の Docker コンテナを同時に実行できます。
2. コンテナーは、コンテナー内でアプリケーションを実行するだけでなく、基本的に追加のシステム リソースを消費しないため、アプリケーションのパフォーマンスが非常に高く、システムのオーバーヘッドが最小限に抑えられます。従来の仮想マシン方式では、10 個の異なるアプリケーションを実行するために 10 台の仮想マシンが必要ですが、Docker では 10 個の分離されたアプリケーションを起動するだけで済みます。
3. 仮想化テクノロジは物理 CPU とメモリに依存し、ハードウェア レベルで行われますが、Docker はオペレーティング システム上に構築され、オペレーティング システムのコンテナ化テクノロジを利用するため、Docker は仮想マシン上でも実行できます。 。
4. 仮想化システムは通常、比較的複雑で「システム」と呼ばれるオペレーティング システム イメージを指しますが、Docker はオープン ソースで軽量であり、「コンテナ」と呼ばれます。 A redis、memcached などの少数のアプリケーション。
5. 従来の仮想化テクノロジは、スナップショットを使用して状態を保存します。Docker は、状態の保存において移植性が高く、低コストであるだけでなく、スナップショットの履歴バージョンを保存するための同様のソース コード管理メカニズムも導入しています。コンテナごとに記録、スイッチングコストが低い。
6. 従来の仮想化テクノロジは、システムの構築がより複雑で多くの人的資源を必要としますが、docker は Dockfile を通じてコンテナ全体を構築し、迅速に再起動して構築できます。さらに重要なのは、Dockfile は手動で作成できるため、アプリケーション開発者は Dockfile を公開することでシステム環境と依存関係をガイドでき、これは継続的デリバリーにとって非常に有益です。
7. もちろん、KVM には、さまざまなオペレーティング システムやカーネルを使用できるという、コンテナと比較した大きな利点もあります。したがって、たとえば、Microsoft Azure を使用して、Windows Server 2012 のインスタンスと SUSE Linux Enterprise Server のインスタンスを同時に実行できます。 Docker に関しては、すべてのコンテナが同じオペレーティング システムとカーネルを使用する必要があります。
機能 |
Docker コンテナ |
KVM 仮想マシン |
##開始 | 秒レベル | 分レベル |
ハードディスク使用量 | 通常 MB | #一般的に GB |
パフォーマンス | ネイティブに近い | より弱い |
システム サポート能力 | 単一マシンで数千のコンテナをサポート | 通常は数十 |
docker ビデオ チュートリアル」
以上がkvmとdockerの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。