Docker と仮想マシンの違いは何ですか
Docker と仮想マシンの違い: 1. Docker は第 2 レベルですぐに起動しますが、仮想マシンは通常起動に数分かかります; 2. パフォーマンスの低下が異なるため、Docker が必要とするリソースは少なくなります; 3. 分離の違い、 docker はプロセス間の分離に属し、分離は弱いですが、仮想マシンはシステムレベルの分離を実現できます。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。
Docker と仮想マシンの違いは何ですか
仮想マシン: 仮想マシンは、ハイパーバイザー (仮想マシン管理システム、一般的なものには 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









国内のミラーソースに切り替えることができます。手順は次のとおりです。1。構成ファイル/etc/docker/daemon.jsonを編集し、ミラーソースアドレスを追加します。 2。保存して終了した後、Docker Service Sudo SystemCtlを再起動してDockerを再起動して、画像のダウンロード速度と安定性を改善します。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

Dockerに画像を保存するには、Docker Commitコマンドを使用して、指定されたコンテナの現在の状態、Syntax:Docker Commit [Options]コンテナID画像名を含む新しい画像を作成できます。画像をリポジトリに保存するには、Docker Pushコマンド、Syntax:Docker Push Image Name [:Tag]を使用できます。保存された画像をインポートするには、Docker Pullコマンド、Syntax:Docker Pull Image Name [:Tag]を使用できます。

Dockerコマンドを実行する方法は? Dockerをインストールし、デーモンを起動します。一般的なDockerコマンド:Docker画像:表示画像の表示Docker PS:ディスプレイコンテナDocker run:run docker docker stop:Stop Container docker RM RM:Delete container container containerとcontainerとdocker exec:execute command docker adtach:adticle console docker logs:ディスプレイログドッカーのコミット:ミラー停止停止dock

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Docker LNMPコンテナコールステップ:コンテナの実行:Docker Run -D - Name LNMP -Container -P 80:80 -P 443:443 LNMPスタックコンテナIPを取得する:Docker Inspect LNMP -Container | GREP iPaddress Access Webサイト:http://< container ip>/index.phpsshアクセス:docker exec -it lnmp -container bash access mysql:mysql -u roo

Dockerバージョンを取得するには、次の手順を実行できます。Dockerコマンド「Docker -version」を実行して、クライアントバージョンとサーバーバージョンを表示します。 MacまたはWindowsの場合は、DockerデスクトップGUIのバージョンタブまたはDockerデスクトップメニューのバージョン情報を表示することもできます。
