Java の上級記事 - Docker の概念を理解するためのわかりやすい記事

1 Docker の概要

まず、Docker にはミラーリング、コンテナー、およびウェアハウスという3 つの主要な概念が大まかに含まれています。簡単に言えば、さまざまなシステムや環境を解決するためのプログラム運用および保守ツールです。

Java 開発者向け。プログラムによって作成された Jar パッケージは、一度コンパイルすればどこでもコンパイルできるという標準をすでに実現できます。では、なぜ Docker を使用するのでしょうか。

まず、実際の開発者の視点からですが、私たちの通常の開発環境は Windows または Mac であり、エクリプスまたはアイデアからコードを作成および開発しています。最終的なパッケージングが完了すると、通常は専用の Linux サーバーまたは Windows サーバーにデプロイされます。

同様の問題がありますか?

  1. サーバーはローカル PC と互換性がありませんか? たとえば、Windows と Linux が複数のシステムに展開されているか、 Windows のバージョンが異なっている
  2. コード ロジックが不十分なため、MD5 暗号化では異なるシステム間で異なる文字エンコーディングが使用され、最終的に異なる暗号化結果につながります。
  3. jar パッケージを介してデプロイした後、サーバー上のJDK バージョンがローカル PC 上のバージョンと異なり、互換性がなくなる
  4. 分散環境では、複数のサーバーがそれぞれのプログラムに対応する環境をデプロイする必要があり、これには時間と労力がかかります

上記は一般的なエラーのみであり、データベース エラーからさらに多くのエラーが発生する場合もあります

そこでDockerの登場は、「ローカルの操作は正しいが、オンラインの端末がダウンしている」という問題を解決することです。より詳細に言えば、シームレスなクロスプラットフォーム接続を実現するために、Docker コンテナーでアプリケーションを一度だけ構成する必要があるのは、私たちのプログラムのためです。

2 Docker の 3 つの主な概念

2.1 はじめに

これらの 3 つの概念を理解する前に。まず、自分が生物学的に現実化された科学者であると想像することから始めてください。現時点では、遠く離れた南アフリカの絶滅危惧種「小さな羊」のクローンを作成し、それを他の国に紹介するタスクが与えられています。現時点では、一般の人々の考えによれば、クローンは鏡像に等しいのでしょうか? 実際、いくつかの違いがあります。

子羊を鏡の前に置くと、子羊の姿が鏡に映るとしますが、鏡は子羊を完全に再現することはできず、光の屈折によって子羊を鏡に映すだけで、鏡 子羊は独立して動くことができず、自分の動きに合わせて鏡の動きしかできません。では、「生きる」ためにそれが必要な場合はどうなるでしょうか。——クローン、子羊の遺伝子をクローンし、特定の快適な環境に置くと、しばらくすると「生命」が生まれます。この一節で、Docker の 3 つの主要な概念を見てみましょう。

2.2 ミラーリング

同じことが Docker イメージにも当てはまります, we can think it as a special file system .プログラムをレプリケートし、コンテナーの実行に必要なリソース、構成ファイル、およびいくつかの環境変数を提供して、すべてを提供します。実行する必要がある環境。この時点で、プログラムは「複製」されています。では、どうすればそれを「活かす」ことができるでしょうか。下記を参照してください。

2.3 コンテナ

まず最初に、子羊の遺伝子を何度もコピーできるように、Docker イメージは複数のコンテナーをインスタンス化できることを理解する必要があります.気分に応じて、N 個の「クローン羊」を作成できます。そして、それぞれの「クローン羊」は独立しています。双頭の羊をクローンすることはできませんよね? それはクローンではなく、突然変異です。再現された「小さなひつじ」の間に依存関係はなく、それぞれのひつじは独立した個体に属しています。

2.2では、あなたのプログラムが「遺伝子」で抽出されていることを鏡像を通して知りました。では、それを生き生きとさせたい場合はどうすればよいでしょうか。ヒトの成長にはクローン羊は言うまでもなく胎盤も必要です。

コンテナーは、「クローン羊」を育てるための成長環境のようなもので、プログラムを実行することができます。

現時点では、一般的な概念を理解できます。Docker イメージは静的であり、基本的なレプリケーション作業のみを担当します。しかし、Docker コンテナーは動的であり、簡素化されたオペレーティング システムやいくつかのコアとなる基本的なアプリケーションのようです

では、異なる種の 2 つの生物を同じコンテナ環境に入れるとどうなるでしょうか? 科学のビッグバン?もちろん、これは科学と一致しておらず、明らかに 2 つの遺伝子間の反発につながり、最終的には失敗します。同じことがコンテナーにも当てはまります。各コンテナーは、独立して実行されるプログラムを 1 つだけ持つことができますつまり、各コンテナーには子羊を 1 匹しか入れることができません。

2.3 倉庫

私たちの絶え間ない努力により、子羊は繁栄しており、今では子羊のバッチをコピーすることに成功しています。では、どのように他の国に紹介するのでしょうか? - 倉庫。科学者が南アフリカで子羊のクローンを作成した後、私たちはそれを梱包して倉庫に入れました. 他の国が輸入する必要がある場合は、この倉庫から入手できます。

Docker のリポジトリを使用して、レジストリ サーバーを提供できます複数の倉庫を保管するために使用され、倉庫はミラーの場所を保管するために使用されます。

Lamb のクローンを作成してウェアハウスに配置するプロセスは、Docker イメージを作成し、プッシュ コマンドを使用して作成した Docker ウェアハウスにアップロードすることと同じです. 後で、他のサーバーがそのイメージを使用する必要がある場合は、ウェアハウスからプルできます.

2.4 まとめ

ミラーリングは CentOs システムのインストール システムとして理解されており、各ミラーリングは単なる読み取り専用環境であり、このミラーリングはそのコンテナーに対応しています。たとえば、CentOs システムに Redis や Mysql などのアプリケーションをインストールすると、それらはすべて 1 つのコンテナーになり、各コンテナーは独立して実行されます。倉庫は、これらのコンテナが混乱しないようにするためのものです。Maven ウェアハウスのように、これらのコンテナーを格納する場所を意図的に作成しました.依存関係を導入する必要がある場合は、Web サイトからこれらの jar パッケージのアドレスを検索する代わりに、ウェアハウスからコンテナーをインポートするだけで済みます.

おすすめ

転載: blog.csdn.net/qq_33351639/article/details/129195459