具体的な違いの分析は次のとおりです:
1. 本質的な違い
(推奨チュートリアル: docker チュートリアル)
VM (VMware) は、ホスト マシンとホスト マシンのオペレーティング システムに基づいて仮想レイヤー、仮想化オペレーティング システム、および仮想化ウェアハウスを作成し、アプリケーションをインストールします。コンテナー (Docker コンテナー) では、ホスト マシンとホスト マシンのオペレーティング システム上に Docker エンジンを作成し、そのエンジンに基づいてアプリケーションをインストールします。
Docker コンテナ内の ubuntu イメージ ファイルによって占有されるメモリ:
起動:
Docker は、ホスト マシンのオペレーティング システム上に Docker エンジンを作成し、オペレーティング システムとハードウェア リソースを仮想化する代わりに、ホスト マシンのオペレーティング システム上のハードウェア リソースを直接呼び出します。 , そのため動作速度が速いです。 これは実際に ubuntu 仮想マシンをインストールし、Docker ubuntu イメージ ファイルをプルします。実行するとわかります。違いは明らかです。仮想マシンを開くのに 2 分以上かかりますが、Docker は 2 分しかかかりません分、秒、 統合: Docker は VM よりも優れた統合を備えています。 3. Docker の機能1. すぐに始められますユーザーは、わずか数分で独自のプログラムを「Docker化」できます。 Docker は「コピーオンライト」モデルを採用しているため、アプリケーションの変更が非常に速く、「勝手にコードが変更される」という領域に達していると言えます。 その後、アプリケーションを実行するコンテナを作成できます。ほとんどの Docker コンテナは 1 秒以内に起動します。ハイパーバイザーのオーバーヘッドが除去されるため、Docker コンテナーはパフォーマンスが高く、より多くのコンテナーを同じホスト上で実行できるため、ユーザーはシステム リソースを最大限に活用できます。 2. 責任の論理的分類Docker を使用すると、開発者はコンテナ内で実行されているアプリケーションのみを考慮する必要があり、運用および保守担当者はコンテナの管理方法のみを考慮する必要があります。 Docker の設計の目的は、開発者がコードを作成する開発環境とアプリケーションがデプロイされる運用環境の間の一貫性を強化することです。これにより、「開発中はすべて正常です。運用と保守の問題に違いありません (テスト環境は正常です。オンライン化後に問題が発生した場合は、運用と保守の問題に違いありません)」というような事態が軽減されます。 3. 高速かつ効率的な開発ライフ サイクルDocker の目標の 1 つは、開発、テストからデプロイメント、オンライン運用までのコードのサイクルを短縮し、アプリケーションを移植可能にし、構築しやすくすることです。コラボレーションしやすい。 (平たく言えば、Docker は多くのオブジェクトを含めることができる箱のようなものです。これらのオブジェクトが必要な場合は、箱から 1 つずつ取り出すことなく、大きな箱から直接取り出すことができます。)#4 ) サービス指向アーキテクチャの使用を奨励する
Docker はサービス指向アーキテクチャとマイクロサービス アーキテクチャも奨励します。 Docker は、単一のコンテナーで 1 つのアプリケーションまたはプロセスのみを実行することを推奨しており、分散アプリケーション モデルを形成します。このモデルでは、アプリケーションまたはサービスは、内部的に相互接続された一連のコンテナーとして表すことができるため、分散デプロイメントが可能になります。アプリケーション、アプリケーションの拡張、またはデバッグが可能になります。非常にシンプルになると同時に、プログラムのイントロスペクションも改善されます。 (もちろん、コンテナ内で複数のアプリケーションを実行できます)
以上がDocker と仮想マシンの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。