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 の外部リンク ツールの統計における外部リンクが不完全なのはなぜですか?

百度は11月25日、百度ウェブマスターツールの外部リンク検索ツールのベータ版をリリースした。武漢SE...

sharktech: オランダのサーバー、60g の高防御、最低 58 ドル、+1Gbps\10Gbps の無制限トラフィック、Alipay が利用可能

オランダの Sharktech アムステルダム データ センターは、ここ数年補充や拡張が行われていま...

SEOサイト全体最適化とキーワード最適化の違い

多くの人は、SEO サイト全体の最適化はキーワードの最適化と同じで、外部リンクを増やし、ウェブサイト...

クラウドサービスが5G主導の未来を実現する方法

高速セルラー ネットワークが東南アジアで主流になるにつれ、クラウドによって通信事業者が 5G ネット...

Apple、プライバシーとデジタル遺産に重点を置き、iCloudをiCloud+にアップグレード

海外メディアの報道によると、2021年のグローバル開発者会議ではソフトウェアのアップグレードが焦点と...

ローカルポータルの成功した運用モデルは再現できる

ローカル ポータルの成功した運用モデルを複製できます。もちろん、すべてをコピーするだけではだめで、地...

百度のスナップショットの誤解、完全な分析はランキングの重みに影響を与えない

多くのウェブマスターは、Baiduスナップショットについて非常に懸念しています。多くの友人が、ウェブ...

鄒聖林氏独占インタビュー:IT教育の最前線で活躍し、オープンソースの発展を推進

Red Hat は、コミュニティの力を活用して、安定性、信頼性、高性能を備えたクラウド テクノロジー...

エンタープライズ SEO は依然として大きな経済的利益をもたらすことができるのでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス企業によっては、ウェブサ...

デジタル経済の発展はなぜエッジコンピューティングと切り離せないのでしょうか?

エッジコンピューティングとは何ですか?人工知能とモノのインターネット産業の急速な発展に伴い、私たちの...

AWS、Azure、GCP: クラウド サービスの詳細な比較

[[435078]]デジタル革命によってもたらされたクラウド コンピューティングの第 3 の波は、私...

hostbuybd: 著作権のない VPS、DMCA 関連の苦情は無視、ロシア\オランダ\ルーマニアはオプション

バングラデシュのホスティング会社であるhostbuybdは、仮想ホスティング、VPS、専用サーバーな...

Linode エンジンを使用した Kubernetes 自動スケーリングのベスト プラクティス

ご存知のとおり、クラウド サービスのアーキテクチャは、手動で構成を変更したり、コードを 1 行ずつ追...

なぜ私は Kubernetes に「洗脳」されたのでしょうか?

Kubernetes はコンテナ オーケストレーションの戦いに勝利し、将来的には「マルチクラウド」の...

人材ネットワークの垂直分割を通じてお金を稼ぐという夢を実現するチャンスはまだあるのでしょうか?

草の根ウェブマスターの起業分野を活性化できる唯一の分野は、おそらく人材ウェブサイトです。なぜそう言う...