ホームページ  >  記事  >  運用・保守  >  Dockerコンテナ技術とは何ですか

Dockerコンテナ技術とは何ですか

WBOY
WBOYオリジナル
2022-08-16 18:02:228414ブラウズ

Docker コンテナ テクノロジとは、Docker がアプリケーション レベルの分離を実装する GO 言語で書かれたプログラムによって実行されるコンテナであるという事実を指します。Docker は開発者とシステム管理者が公開し、オープン プラットフォームを実現できるように設計されています。分散アプリケーションを実行するため。

Dockerコンテナ技術とは何ですか

このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。

Docker コンテナ テクノロジとは

Docker コンテナ テクノロジは、GO 言語で書かれたプログラムによって実行される「コンテナ」(Linux コンテナ、LXC) として Docker を指します。Docker はアプリケーション レベルの分離を実装します。これにより、基本的な開発および運用単位が、仮想ホスト (VM) を直接操作することから、オペレーティング プログラムが実行される「コンテナ」に変更されます。

Docker は、開発者とシステム管理者が分散アプリケーションを公開および実行するために設計されたオープン プラットフォームです。 Docker Engine: ポータブルで軽量なランタイム環境とパッケージ マネージャーの 2 つの部分で構成されます。

(注* シングル OS とシングル スレッド) Docker Hub: 自動化されたワークフローを作成し、アプリケーションを共有するために作成されたクラウド サービス。 (注* クラウド イメージ/パッケージ管理と npm パッケージ管理、特に npm に似ていますか?)

2013 年 3 月 20 日から、Docker の最初のバージョンが正式にリリースされ、2014 年 6 月に Docker 1.0 になりました。それには 15 年かかりました。正式リリースまでに数か月。 Docker の開発の歴史は非常に短いですが、ますます人気が高まっています。実際、コンテナ テクノロジは Docker の革新ではありません。HeroKu や NodeJitsu などのクラウド サービス プロバイダも同様の軽量仮想化テクノロジを採用しています。しかし、Docker はこのコンテナ テクノロジを大規模にオープンソース化した最初の企業であり、コミュニティに広く受け入れられました。 。

コンテナ テクノロジーの拡張

コンピュータの世界では、コンテナには長く伝説的な歴史があります。コンテナーはハイパーバイザー仮想化 HV とは異なります。ハイパーバイザー仮想化では、中間層を使用して物理ハードウェア上の 1 つ以上の独立したマシンを仮想化しますが、コンテナーはオペレーティング システムのカーネル ユーザー空間で直接実行されます。したがって、コンテナ仮想化は「オペレーティング システム レベルの仮想化」とも呼ばれ、コンテナ テクノロジを使用すると、複数の独立したユーザー スペースを同じホスト上で実行できます。

オペレーティング システムの「ゲスト」により、コンテナーは基盤となるホストと同じまたは類似のオペレーティング システムのみを実行できます。これはあまり柔軟性がないようです。たとえば、Ubuntu サービスでは Redhat Enterprise Linux を実行できますが、Ubuntu サーバー上では Microsoft Windows を実行できません。

コンテナは、完全に分離されたハイパーバイザー仮想化と比べて安全ではないと考えられています。この見解に反対する人は、仮想コンテナは完全なオペレーティング システムを仮想化するため、間違いなく攻撃の範囲が拡大し、ハイパーバイザー層の潜在的な漏洩リスクも考慮する必要があると考えています。

多くの制限があるにもかかわらず、コンテナーはさまざまなアプリケーションに広くデプロイされています。コンテナー テクノロジーは、非常に大規模なマルチテナント サービスの導入、軽量のサンドボックス、およびセキュリティ要件がそれほど厳しくない分離環境で非常に人気があります。最も一般的な例の 1 つは、プロセスを実行するための分離されたディレクトリ環境を作成する「chrootjail」です。権限隔離刑務所内で実行されているプロセスが侵入者によって侵害された場合、侵入者は自分自身が「刑務所内」に置かれ、権限が不十分なためにコンテナによって作成されたディレクトリに閉じ込められ、ホスト マシンにそれ以上損害を与えることができなくなります。

最新のコンテナ テクノロジでは、OpenVZ、Solaris ゾーン、および Linux コンテナ (LXC) が導入されています。これらの新しいテクノロジーにより、コンテナーは単なる単純なオペレーティング環境ではなくなりました。独自の権限クラス内では、コンテナーは完全なホストに似ています。 Docker の場合、コントロール グループや名前空間テクノロジなどの最新の Linux 機能の恩恵を受けています。コンテナとホスト間の分離はより完全です。コンテナには独立したネットワークとストレージ スタックがあり、独自のリソース管理機能もあり、複数の同じホスト内のコンテナは友好的な方法で共存します。

コンテナは必要なオーバーヘッドが限られているため、無駄のないテクノロジとみなされます。従来の仮想化や準仮想化と比較して、コンテナはエミュレーション層(エミュレーション層)や管理層(ハイパーバイザ層)を必要とせず、オペレーティングシステムのシステムコールインターフェイスを使用します。これにより、単一のコンテナーの実行に必要なオーバーヘッドが削減され、ホスト上でより多くのコンテナーを実行できるようになります。

その輝かしい歴史にもかかわらず、コンテナはまだ広く認識されていません。非常に重要な理由は、コンテナ テクノロジの複雑さです。コンテナ自体は複雑で、インストールが難しく、管理や自動化も困難です。そして、Docker はこれらすべてを変えるために生まれました。

推奨される学習: 「docker ビデオ チュートリアル

以上がDockerコンテナ技術とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。