Docker コンテナと仮想マシンの違いは何ですか?

Docker コンテナと仮想マシンの違いは何ですか?

Dockerが解決する主な問題

バックエンド開発の経験がある学生は、次のような問題に遭遇したことがあるはずです。

プログラムは開発環境では正常に実行されますが、運用環境にデプロイすると頻繁に失敗します。

プログラムを顧客の環境に展開する必要があるとします。自社の環境では正常にデプロイおよび検証されているものの、顧客の環境では必要なライブラリ ファイルが不足していたり​​、一部のファイルのバージョンが要件を満たしていないのではないかと常に心配しています。

さて、docker を使用すると、これらの問題は発生しなくなります。

Dockerとは

Docker は、実行可能ファイル、構成ファイル、その他必要なすべてのファイルをこのコンテナーにパッケージ化し、任意のプラットフォームに公開して適用できる仮想環境コンテナーです。たとえば、Python を使用して Web サイトのバックエンドをローカルで開発するとします。開発とテストが完了したら、Python3 とその依存パッケージ、Flask とその各種プラグイン、Mysql、Nginx などをコンテナにパッケージ化し、任意の環境にデプロイできます。

わかりにくい場合は、コンテナを例に挙げてみましょう。

コンテナはどのような問題を解決しますか?大型船では、荷物をきちんと並べることができます。さらに、さまざまな商品がコンテナによって標準化され、コンテナ同士が影響を与えることもありません。そうすれば、果物を輸送するための船や化学物質を輸送するための船は必要なくなります。商品がコンテナにしっかりと梱包されていれば、大きな船で輸送することができます。

Docker にも同様の概念があります。 1 台のマシン上で複数の無関係な Docker コンテナを実行でき、各コンテナはコンテナと同等です。

Dockerにおけるいくつかの基本概念

画像は静的ファイルの集まりとして理解できる

  • 容器

コンテナは、実行後のイメージのインスタンスです。コンテナに対するイメージは、オブジェクト指向プログラミングにおけるオブジェクトに対するクラスと同じようなものです。

  • 倉庫

画像は保管する場所が必要であり、その場所が倉庫です

従来の仮想化との違い

ここでは、従来の仮想化について説明します。

従来の仮想化は、ハードウェアの物理リソースに基づいて複数の OS を仮想化し、OS に基づいて比較的独立したプログラム実行環境を構築することがわかります。一方、Doccer は OS に基づいて仮想化されています。明らかに、Doccer ははるかに軽量であるため、リソースの占有とパフォーマンスの消費は従来の仮想化に比べて大きな利点があります。

テクノロジー シルバーフォックス

CCTV.com シニアエンジニア 04-13 01:37

私は長年IT業界で働いてきましたが、時代が物理サーバーから仮想化されたクラウドコンピューティングの時代へと移り変わり、そして今、Docker時代へ入ろうとしています。次世代の仮想化テクノロジーとして、Docker は業界全体のアプリケーションの開発、テスト、展開の方法を変えています。仮想化技術とDocker技術の違いについては、以下で分析してみましょう。

01 仮想化とは何ですか?

名前が示すように、仮想化テクノロジーとは、何らかのテクノロジーを使用して物理リソースをリソース プールに仮想化することです。主な形式は 2 つあります: 1 つの仮想対多と複数の仮想対 1 です。たとえば、Vmware ソフトウェアをパソコンにインストールすると、他の Win システム、MacOS、Linux システムなどをこのソフトウェアにインストールできるため、1 台のパソコン/ラップトップで複数のシステムを実行できるという利点が得られます。現在、Apple ノートブック ユーザー向けのデュアル システム ソリューションも、主に仮想マシンに基づいています。一般的な Windows ユーザーには需要があまりないかもしれませんが、技術者にとっては基本的に必須のソフトウェアです。

企業の観点から見ると、複数の仮想対 1 が主な形式であり、これは多数の物理サーバー クラスターを仮想化してリソース プールを形成し、このリソース上にさまざまな仮想マシンを作成して柔軟な展開を実現することを意味します。

02 Dockerとは

実際、Docker と仮想技術は非常に似ていますが、いくつかの違いもあります。一方、2 つのテクノロジのレベルでは、仮想マシンは一般に基盤となるハードウェアによってサポートされ、上位層は仮想管理システムのハイパーバイザー層です。上位層ではさまざまな VM サービスが有効になります。これらのサービスを分離する必要がある場合、各 VM はクライアント オペレーティング システムを起動する必要があり、大量のリソースが消費されます。

Docker はまったく異なります。基盤となるレイヤーは、ハードウェアと Windows/MacOS/Linux などのホスト OS システムによってサポートされます。中央の肥大化したシステムは破棄され、Docker デーモン プロセスに置き換えられます。上位層には異なるコンテナが確立され、異なるアプリケーション イメージは互いに分離された異なるコンテナにパッケージ化されます。

03 仮想化とDockerの違い

Docker は設計がコンパクトで、展開と移行が速く、操作が効率的で、互いに独立しています。管理者はすべてのコンテナの内容を見ることができます。仮想化技術は比較的肥大化しています。アプリケーションに関係なく、最初に新しいシステムを作成する必要があります。さらに、アプリケーションではなくシステムごとに分離されます。管理者はシステムの内部情報を見ることができません。

たとえば、Docker は携帯電話のさまざまなアプリです。必要なアプリケーションをダウンロードするには 1 つのシステムだけが必要ですが、仮想化テクノロジーは Apple の携帯電話に巨大なソフトウェアをインストールするのと同じです。このソフトウェアは、Android システム、Meizu システムなどにインストールされており、各システムにさまざまなアプリケーションをインストールする必要があり、さらに面倒です。

しかし、両者の間に絶対的な善悪はありません。主にアプリケーションのシナリオによって異なります。さまざまなニーズに応じてさまざまなソリューションを選択できます。

<<:  マルチクラウド環境を展開するための4つのステップ

>>:  メモリ仮想化は具体的にどのように機能するのでしょうか?

推薦する

BaiduとGoogleの最適化の違いについて簡単に説明します

Baidu は中国の検索エンジンのリーダーであり、Google は世界の検索エンジンのリーダーです。...

キーワードランキング最適化の価格を決定する要因は何ですか?

多くのお客様からキーワードランキング最適化の価格についてご相談をいただいております。ここでは、キーワ...

コロケーションの 5 つのメリット: ハイブリッド クラウド戦略にコロケーションを取り入れるべき理由

競争力を維持するために、企業はオンデマンドのテクノロジー サービスにますます依存するようになっていま...

一部の共同購入ウェブサイトは地元市場に目を向け、2012年に収益化を達成することを期待している。

エコノミック・ボイスによると、グループ購入業界は2012年に200億元規模に達するだろう。これは、M...

私のウェブサイトでは Baidu Statistics と Baidu Share を使用する必要がありますか?

Baidu のウェブマスター関連製品である Baidu Statistics と Baidu Sha...

大きな記事を掲載した小さなブログは、あなたのビジネスを即座に強化することができます

私たちは、自分自身の楽しみのためにブログを書いているのではありません。ブログを書いた後、私たちのブロ...

変革に直面した地域不動産サイトが取るべき正しい戦略と対策

大都市でも中小都市でも、それぞれに都市特性があり、地元の不動産ネットワークは都市の指標となり、不動産...

301 リダイレクトの 3 つの種類

Gutengseo はこれまで何度も 301 リダイレクトを行ってきましたが、種類はさまざまです。今...

ハッカーが百度のウェブサイトを改ざん、広西警察が容疑者を逮捕

中国新聞社、1月31日:記者らは最近、広西チワン族自治区北海市警察がサイバーハッカー攻撃事件の解決に...

s"unspeakable"mvz 3gメモリ VPS 7ドル/月 4つのデータセンター

4 コア共有 CPU、75G ハードディスク (raid10)、3072M メモリ、750G 月間ト...

JVM の内部: Java 仮想マシンの詳細な説明

[[325305]]この記事では、Java 仮想マシン (JVM) の内部アーキテクチャについて説明...

周紅義氏によるユーザーエクスペリエンスの説明を簡単に理解する

かつて、周洪義という偉大な人物が、ユーザー エクスペリエンスに関する独自の見解を次のように表現しまし...

キングディーは26年間で3回の変革を成功させ、ピーター・ドラッカー中国経営賞を受賞した。

11月17日、北京で2019年ピーター・ドラッカー中国経営フォーラムと2019年ピーター・ドラッカー...

APPのプロモーションチャネルを選択するにはどうすればいいですか?

アプリがリリースされた後、さまざまなアプリプロモーションチャネルを通じて製品を宣伝することは、重要な...