Docker と仮想マシンの違い: 1. Docker は第 2 レベルですぐに起動しますが、仮想マシンは通常起動に数分かかります; 2. パフォーマンスの低下が異なるため、Docker が必要とするリソースは少なくなります; 3. 分離の違い、 docker はプロセス間の分離に属し、分離は弱いですが、仮想マシンはシステムレベルの分離を実現できます。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。
仮想マシン: 仮想マシンは、ハイパーバイザー (仮想マシン管理システム、一般的なものには VMWare ワークステーションなど) を通じてネットワーク カード、CPU、メモリを仮想化します。 、VirtualBox) 仮想ハードウェアを待ってから、その上に仮想マシンを構築します。各仮想マシンは独立したオペレーティング システムであり、独自のシステム カーネルを持ちます。
コンテナ: コンテナは名前空間を使用してファイル システム、プロセス、ネットワーク、デバイス、その他のリソースを分離し、cgroup を使用してアクセス許可と CPU リソースを制限します。最終的に、コンテナは相互に影響せず、コンテナはホストに影響を与えることはできません。 。
docker の利点
コンテナ上で実行される Docker プログラムは、ホスト マシンのハードウェア リソースを直接使用するため、CPU、メモリ、使用率の点で、Docker は効率の点で大きな利点があります
Docker はホストのシステム カーネルを直接使用するため、仮想マシンの起動時に必要なシステムの起動時間や実行中のオペレーティング システムのリソース消費を回避します。コンテナを数秒以内に実行することは、仮想マシンでは不可能です。 Docker は、迅速な起動と低リソース消費という利点により、弾力性のあるクラウド プラットフォームの自動運用および保守システムにおける優れたアプリケーション シナリオとなっています。
コンテナの起動時間は数秒であるため、開発、テスト、デプロイにかかる時間を大幅に節約できます。もう 1 つの非常に重要な点は、Docker を効率的にデプロイおよび拡張できることです。Docker コンテナは、仮想マシン、物理マシン、パブリック クラウド、プライベート クラウド、パーソナル コンピュータ、サーバーなどを含むほぼすべてのプラットフォームで実行できます。この互換性により、ユーザーは次のことを行うことができます。アプリケーションをあるプラットフォームから別のプラットフォームに直接移行します。
ただし、仮想マシンのセキュリティはコンテナよりも優れており、Docker はカーネルやファイル システムなどのリソースをホストと共有するため、他のコンテナやホストに影響を与える可能性が高くなります。
#違い
##1. 起動速度の違いdocker は数秒以内に迅速に起動します。仮想マシンは通常、起動するまでに数分かかります。
2. さまざまなパフォーマンス損失Docker はより少ないリソースを必要とします。Docker はオペレーティング システム レベルで仮想化します。Docker コンテナーはカーネルと対話し、パフォーマンスの損失はほとんどありません。 . パフォーマンスは、ハイパーバイザー層とカーネル層による仮想化よりも優れています。
3. さまざまなシステム使用率docker はより軽量です docker アーキテクチャはカーネルと共有アプリケーション ライブラリを共有でき、占有するメモリはほとんどありません。同じハードウェア環境では、Docker は仮想マシンよりもはるかに多くのイメージを実行し、システム使用率が非常に高くなります。
4. さまざまな分離プロパティ仮想マシンと比較すると、Docker の分離は弱いです。Docker はプロセス間の分離に属し、仮想マシンはシステム レベルの分離を実現できます。 . .
5. 異なるセキュリティDocker のセキュリティも弱いです。 Docker のテナント ルートはホスト ルートと同じであり、コンテナ内のユーザーが通常のユーザー権限からルート権限にアップグレードされると、そのユーザーは直接ホストのルート権限を持ち、無制限の操作を実行できます。仮想マシン テナントのルート権限はホストのルート仮想マシン権限から分離されており、仮想マシンはインテルの VT-d や VT-x などのリング 1 ハードウェア分離テクノロジーを利用しています。この分離テクノロジーにより、仮想マシンの突破や相互作用が防止されます。コンテナにはまだハードウェア分離の形式が存在しないため、コンテナは攻撃に対して脆弱になります。
6. 異なる管理性Docker の一元管理ツールはまだ成熟していません。さまざまな仮想化テクノロジには成熟した管理ツールがあり、たとえば、VMware vCenter は完全な仮想マシン管理機能を提供します。
7. 可用性と回復可能性は異なりますDocker のビジネスに対する高可用性サポートは、迅速な再デプロイメントによって実現されます。仮想化には、実稼働環境でテストされたロード バランシング、高可用性、フォールト トレランス、移行、データ保護などの成熟した保証メカニズムがあり、VMware は仮想マシンの 99.999% の高可用性を約束して、ビジネスの継続性を確保します。
8. 作成と削除の速度は異なります仮想化の作成には数分かかりますが、Docker コンテナーの作成には数秒かかります。Docker を迅速に反復することで、大幅な節約ができるかどうかが決まります。開発、テスト、展開にかかる時間。
9. 配信速度とデプロイメント速度は異なります仮想マシンはイメージを通じて一貫した環境配信を実現できますが、イメージ配布を体系的に行うことはできません。Docker はこれを Dockerfile に記録します。コンテナ構築プロセスにより、クラスター内での迅速な配布と迅速なデプロイメントを実現できます。
推奨学習: 「
docker ビデオ チュートリアル以上がDocker と仮想マシンの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。