Docker では、イメージは「ミラー」を意味し、ファイル システムです。イメージは、複数のディレクトリ層をまとめてマウントして、Linux と同じディレクトリ構造を持つ仮想ファイル システムを形成できます。Docker はこれらのファイルを渡します。ホストのカーネルは Linux 仮想環境を提供します。
このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
docker におけるイメージの意味
image 内部には、Union FS (Union File System) と呼ばれるレイヤーごとのファイル システムがあります。
統合ファイル システムは、複数のディレクトリ層をまとめてマウントして、仮想ファイル システムを形成できます。仮想ファイルシステムのディレクトリ構造は通常の Linux のディレクトリ構造と同様であり、Docker はこれらのファイルとホストのカーネルを通じて Linux 仮想環境を提供します。
ファイル システムの各層はレイヤーと呼ばれます。共同ファイル システムでは、ファイル システムの各層に対して、読み取り専用 (readonly)、読み取り/書き込み (readwrite)、書き込み (ホワイトアウト) の 3 つのアクセス許可を設定できます。 -able). )、ただし、docker イメージ内のファイル システムの各レイヤーは読み取り専用です。
イメージをビルドする場合、最も基本的なオペレーティング システムから始めて、各ビルド操作は、レイヤーを変更し、ファイル システムのレイヤーを追加することに相当します。上のレイヤーが下のレイヤーを覆い隠すのと同じように、レイヤーごとに上のレイヤーを変更すると、下のレイヤーの表示が隠されてしまうのと同じように、理解するのが簡単です。
これを使用すると、完全な全体しか表示されず、何層あるのかもわかりませんし、各層にどのような変更が加えられたのかもわかりません。
#基本的な観点から見ると、典型的な Linux ファイル システムは、bootfs と rootfs で構成されます。bootfs (ブート ファイル システム) には主にブートローダーが含まれます。および kernel 、ブートローダーは主にカーネルのブートとロードに使用され、カーネルがメモリにロードされると、bootfs はアンマウントされます。
rootfs (ルート ファイル システム) には、一般的な Linux システムの /dev、/proc、/bin、/etc などの標準的なディレクトリとファイルが含まれています。次の図は、docker イメージの最も基本的な 2 層構造を示しています。Linux ディストリビューション (ubuntu や CentOS など) が異なると、ディストリビューションのバージョンの違いを反映して、rootfs 層に違いが生じます。
従来の Linux が bootfs をロードするときは、まず rootfs を読み取り専用に設定し、次にシステムの自己テスト後に rootfs を読み取り専用から読み取り/書き込みに変更します。その後、rootfs で読み取りおよび書き込み操作を実行できるようになります。
しかし、Docker は、bootfs のセルフテストが完了した後も、rootfs の読み取り専用を読み取り/書き込みに変更せず、代わりに、ユニオン マウント (UnionFS のマウント メカニズム) を使用して、rootfs 内の他のレイヤーを変更します。前の読み取り専用 rootfs レイヤーにロードされると、各レイヤーは rootfs 構造になり、読み取り専用になります。したがって、既存の画像のレイヤーを変更することはできません。
コンテナを作成するとき、つまり Docker イメージをインスタンス化するときのみ、システムは空の読み書き可能な rootfs を割り当て、変更を保存します。レイヤーによって保存された変更は、git と同様に増分です。
#要約すると、image は実際にはファイル システムであり、ホストのカーネルとともにプログラムに仮想 Linux 環境を提供します。 Docker コンテナを起動すると、Docker はイメージに基づいてコンテナ用の仮想 Linux 環境を構築します。
推奨される学習: 「docker ビデオ チュートリアル 」
以上がDocker での画像の意味の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。