Docker イメージには、コンテナー ランタイムを提供するために必要なプログラム、ライブラリ、リソース、構成、その他のファイルと、ランタイム用に準備されたいくつかの構成パラメーターが含まれています。イメージは特殊なファイル システムであり、構築後に内容が変更されない動的データ。
このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。
まずイメージとは何かを理解します:
オペレーティング システムがカーネルとカーネルに分かれていることは誰もが知っています。ユーザースペース。 Linux の場合、カーネルの起動後、ユーザー空間のサポートを提供するためにルート ファイル システムがマウントされます。 Docker イメージ (Image) はルート ファイル システムに相当します。たとえば、公式イメージ ubuntu:18.04 には、Ubuntu 18.04 最小システムのルート ファイル システムの完全なセットが含まれています。
Docker イメージは特別なファイル システムであり、コンテナの実行時に必要なプログラム、ライブラリ、リソース、構成ファイル、その他のファイルを提供するだけでなく、実行時に用意されたいくつかの構成パラメータ (匿名ボリュームなど) も含まれています。 、環境変数、ユーザーなど)。イメージには動的データが含まれておらず、その内容は構築後に変更されません。
階層化ストレージ
イメージにはオペレーティング システムの完全なルート ファイル システムが含まれているため、そのボリュームは多くの場合膨大になります。階層ストレージ アーキテクチャとして設計されたテクノロジです。したがって、厳密に言えば、イメージは ISO のようなパッケージ化されたファイルではありません。イメージは単なる仮想概念です。実際の表現はファイルではなく、一連のファイル システム、つまり複数のファイル システムの組み合わせで構成されます。レイヤー ファイル システムの構成。
イメージが構築されるとき、前のレイヤーが次のレイヤーの基礎となり、レイヤーごとに構築されます。各レイヤーが構築されると、再度変更されることはなく、後続のレイヤーでの変更は、そのレイヤーでのみ発生します。たとえば、前のレベルでファイルを削除する操作では、実際には前のレベルのファイルが削除されず、現在のレベルでファイルに削除済みのマークが付けられるだけです。最後のコンテナが実行されると、このファイルは表示されませんが、実際には、ファイルは常にイメージに従います。したがって、イメージを構築するときは、各レイヤーには追加する必要があるものだけを含める必要があり、レイヤーの構築が完了する前に余分なものをクリーンアップする必要があります。
階層型ストレージの特性により、イメージの再利用とカスタマイズも容易になります。以前に構築したイメージをベース レイヤーとして使用し、さらに新しいレイヤーを追加して必要なものをカスタマイズし、新しいイメージを構築することもできます。
拡張知識:
画像をクラス(Class)として理解できます。
まず、イメージ ウェアハウス サービスからイメージを取得する必要があります。一般的なイメージ リポジトリ サービスは Docker Hub ですが、他のイメージ リポジトリ サービスも存在します。
プル操作によりイメージがローカルの Docker ホストにダウンロードされ、そのイメージを使用して 1 つ以上のコンテナーを起動できます。
画像は複数のレイヤーで構成されており、各レイヤーを重ね合わせると、外側からは独立したオブジェクトのように見えます。イメージ内には合理化されたオペレーティング システム (OS) があり、アプリケーションの実行に必要なファイルや依存関係パッケージも含まれています。
コンテナは高速かつコンパクトになるように設計されているため、通常はイメージのサイズが小さくなります。
これまで何度も述べてきましたが、イメージは実行を停止するコンテナ (クラス) のようなものです。実際、コンテナを停止して、そこから新しいイメージを作成することができます。
この前提の下では、次の図に示すように、イメージはビルド時の構造として理解でき、コンテナーは実行時の構造として理解できます。
推奨学習: 「docker ビデオ チュートリアル 」
以上がDocker イメージに含まれるものの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。