ホームページ  >  記事  >  運用・保守  >  Docker コンテナは何に使用されますか?

Docker コンテナは何に使用されますか?

WBOY
WBOYオリジナル
2022-02-23 11:21:346803ブラウズ

Docker では、コンテナはコンポーネントをアプリケーション スタックとサービス スタックに結合し、ソフトウェア コンポーネントを更新および維持するための効率的なメカニズムを提供します。Docker コンテナは相互に分離されるだけでなく、基礎となるシステム分離からも分離され、実行できます。コンテナー ランタイム環境をサポートする任意のマシン上で。

Docker コンテナは何に使用されますか?

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

Docker コンテナの用途

現代のソフトウェア開発の目標の 1 つは、アプリケーションを同じホストまたはクラスター上で実行し、不当に動作しないように相互に分離できることです。相互に運用やメンテナンスに干渉しますが、パッケージ、ライブラリ、その他のソフトウェア コンポーネントが実行されているため、これはさらに困難になります。

この問題に対する 1 つの解決策は、同じハードウェア上のアプリケーションを完全に分離し、ソフトウェア コンポーネント間の競合やハードウェア リソース間の競合を最小限に抑える仮想マシンを使用することです。ただし、仮想マシンのマシン サイズは比較的大きく、それぞれの仮想マシンには独自のオペレーティング システムが必要なため、通常はサイズが GB に達し、保守とアップグレードが困難です。

仮想マシンとは対照的に、コンテナはアプリケーション実行環境を相互に分離しますが、基盤となる OS カーネルを共有します。通常、それらはメガバイト単位で測定され、仮想マシンよりもはるかに少ないリソースを使用し、ほぼ瞬時に起動します。多くの労力やオーバーヘッドを必要とせずに、同じハードウェア上により高密度にパッキングすることが可能です。

コンテナは、ソフトウェア コンポーネントを現代の企業に必要なさまざまなアプリケーションおよびサービス スタックに結合し、これらのソフトウェア コンポーネントを更新および保守し続けるための、効率的かつ高度に粒度の高いメカニズムを提供します。

Docker は、コンテナーとコンテナー ベースのアプリケーションを簡単に作成できるオープン ソース プロジェクトです。元々は Linux 用に構築されましたが、現在は Windows および MacOS 上でも実行できます。

Docker は常に、開発者が軽量でポータブルなソフトウェア コンテナを迅速に構築できるように支援してきました。これにより、アプリケーションの開発、テスト、デプロイメントが簡素化されます。具体的には、オペレーティング システムのカーネルを共有し、それ以外は独立して実行される小型で軽量の実行環境を提供する、アプリケーションを構築するためのソフトウェア プラットフォームです。

コンテナの概念は長い間存在していましたが、2013 年に開始されたオープンソース プロジェクト Docker は、このテクノロジの普及に大きく貢献し、ソフトウェア開発におけるコンテナ化とマイクロサービスのトレンドを促進しました。クラウドネイティブ開発として知られています。

Docker コンテナは、従来のアプリケーションよりもインストール、保守、移動が簡単なエンタープライズ アプリケーションやビジネス プロセス アプリケーションを構築する方法を提供します。

Docker コンテナは分離をサポートします: Docker コンテナを使用すると、アプリケーションを相互に分離するだけでなく、基盤となるシステムからも分離できます。これにより、ソフトウェア スタックがクリーンになるだけでなく、コンテナ化されたアプリケーションが CPU、GPU、メモリ、I/O、ネットワークなどのシステム リソースを使用しやすくなります。また、データとコードの独立性が確保されます。

Docker コンテナは移植性をサポートします: Docker コンテナは、コンテナ ランタイム環境をサポートする任意のマシン上で実行されます。アプリケーションをホスト オペレーティング システムに結び付ける必要がないため、アプリケーション環境と基盤となるオペレーティング環境をクリーンかつ最小限に保つことができます。

たとえば、コンテナを使用した MySQL は、コンテナをサポートするほとんどの Linux システム上で実行され、通常、アプリケーションの依存関係はすべて同じコンテナ内で提供されます。コンテナベースのアプリケーションは、ターゲット システムが Docker およびそれとともに使用されるサードパーティ ツールをサポートしている限り、オンプレミス システムからクラウド環境、または開発者のラップトップからサーバーに簡単に移動できます。 Kubernetesとして。

通常、Docker コンテナー イメージは特定のプラットフォーム用に構築する必要があります。たとえば、Windows コンテナは Linux 上で実行できず、その逆も同様です。以前は、この制限を回避する 1 つの方法は、目的のオペレーティング システムのインスタンスを実行する仮想マシンを起動し、その仮想マシン内でコンテナを実行することでした。

ただし、Docker チームは後に、複数のオペレーティング システムのイメージを並行してパッケージ化できるマニフェストと呼ばれる、より洗練されたソリューションを設計しました。マニフェストはまだ実験段階ですが、コンテナがクロスプラットフォーム アプリケーション ソリューションおよびクロス環境アプリケーション ソリューションになる可能性があることを示唆しています。

Docker コンテナは構成可能性をサポートしています。ほとんどのビジネス アプリケーションは、Web サーバー、データベース、キャッシュ キャッシュなどの複数の独立したコンポーネントで構成されています。 Docker コンテナは、これらのコンポーネントを簡単に交換可能な機能ユニットに結合できます。各部分は異なるコンテナーによって提供され、他のコンテナーとは独立して保守、更新、交換、および変更できます。

これは本質的に、アプリケーション設計のためのマイクロサービス モデルです。アプリケーションの機能を独立した自己完結型のサービスに分割することで、マイクロサービス モデルは、従来の開発の時間がかかるプロセスやモノリシックで堅固なアプリケーションに対するソリューションを提供します。軽量でポータブルなコンテナーにより、マイクロサービス ベースのアプリケーションの構築と保守がさらに簡単になります。

Docker コンテナはオーケストレーションとスケーリングを簡素化します。コンテナは軽量でオーバーヘッドが少ないため、より多くのコンテナを特定のシステム上で起動でき、コンテナはクロスシステム クラスタでも使用できます。アプリケーションをスケールしてサービスをスケールアップするか、ピーク需要に対応したり、リソースを節約したりするためにダウンします。

コンテナのデプロイ、管理、スケーリングのためのツールのエンタープライズ グレードのバージョンのほとんどは、サードパーティ プロジェクトを通じて提供されます。その最たるものが Google の Kubernetes です。これは、コンテナのデプロイとスケーリング、コンテナの接続、負荷分散、管理をサポートする自動化システムです。 Kubernetes は、マルチコンテナ アプリケーションまたは「Helm チャート」を作成および再利用する方法も提供し、必要に応じて複雑なアプリケーション スタックを構築および管理できるようにします。

Docker には Swarm オーケストレーション モードも組み込まれていますが、現在このモードはほとんど使用されず、Kubernetes がデフォルトの選択肢となっています。実際、Kubernetes は Docker Enterprise Edition にバンドルされています。

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

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

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