ホームページ  >  記事  >  運用・保守  >  dockerでコンパイルしたイメージはどのディレクトリに置かれますか?

dockerでコンパイルしたイメージはどのディレクトリに置かれますか?

青灯夜游
青灯夜游オリジナル
2022-05-11 12:14:2818620ブラウズ

イメージは docker ルート ディレクトリに配置されます。イメージ レイヤーのコンテンツは通常、Docker ディレクトリの aufs パスにあり、特定のアドレスは「/var/lib/docker/aufs/」です。イメージ レイヤーごとに、対応する json ファイルが保存され、パスは「 /var/lib/docker/graph」。

dockerでコンパイルしたイメージはどのディレクトリに置かれますか?

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

Docker イメージのコンテンツ


Docker イメージを初めて理解するときが必ずあります。それ以来、もちろん成長がありました。著者自身の理解 プロセスを全員と共有することもできます:

  • Docker との最初の接触: 多くの愛好家が同じ理解を持っていると思います。私: Docker イメージはコンテナーのファイル システムの内容を表します;

  • 共同ファイル システムとの最初の接続: 共同ファイル システムの概念が私をそうさせましたイメージ階層管理のテクノロジーを認識しており、イメージの各層はすべてコンテナ ファイル システム コンテンツの一部です。

  • イメージとコンテナーの関係を検討します: コンテナーは動的環境であり、イメージの各レイヤー内のファイルは静的コンテンツです。ただし、ENV と VOLUME はDockerfile 、 CMD 、およびその他のコンテンツは最終的にコンテナーの実行環境に実装する必要があり、これらのコンテンツをイメージの各レイヤーに含まれるファイル システム コンテンツに直接配置することはできません。

さらに、上記の 3 番目のステップには、誰もがよく知っていると思われる別の状況があります。多くのミラー レイヤーのサイズは 0 で、内部にファイル コンテンツがありません。ミラー層。どうしたの?

「Docker イメージの詳細説明 (1): コンテナ ファイル システム」で、空のイメージの生成について「イメージの json ファイルを更新する」と述べたことを思い出してください。実際、前回の記事に張られた伏線は真実を示唆しています - Docker イメージ コンテンツはイメージ レイヤー ファイル コンテンツとイメージ json ファイルで構成されており、静的コンテンツか動的情報かに関係なく、Docker は json ファイル内で更新します。

各 Docker イメージ レイヤーの json ファイルは非常に重要な役割を果たしており、その主な機能は次のとおりです:

  • Docker イメージに関する情報を記録しますコンテナの動的情報に関連するコンテンツ

  • 親と子の Docker イメージ間の実際の違いの関係を記録します

  • Docker イメージ コンテンツの完全性と動的コンテンツの不足を補う

Docker イメージの json ファイルは、Docker イメージのメタデータ情報とみなすことができます。イメージであり、その重要性は自明のことです。

Docker イメージの保存場所


Docker イメージ レイヤー ファイルや json に関係なく、Docker イメージ コンテンツの理論的分析は少し混乱するようです。ドキュメントは少し複雑です。読むのは退屈です。 Dockerの実環境を垣間見ることができれば、ミラーリング技術の理解に大いに役立つと思います。

早速本題に移り、Docker イメージのストレージから始めて、これらのイメージ レイヤー ファイルとイメージ json ファイルの内容がどこに保存されているかを見てみましょう。 (以下に示す実験環境: ホスト オペレーティング システムは Ubuntu 14.04、Docker バージョンは 1.7.1、グラフドライバー タイプは aufs、ubuntu:14.04 のイメージが 1 つだけ含まれています。)

画像のレイヤー構成の表示

##コマンド docker History ubuntu:14.04 を使用して ubuntu:14.04 を表示できます。結果は次のとおりです。

dockerでコンパイルしたイメージはどのディレクトリに置かれますか?

##この図は、ubuntu:14.04 イメージに 4 つのイメージ レイヤーがあることを示しています。

イメージ レイヤー ファイルのコンテンツ ストレージDocker イメージ レイヤーのコンテンツは、通常、 Docker ルート ディレクトリは /var/lib/docker/aufs/ で、詳細は次のとおりです:

dockerでコンパイルしたイメージはどのディレクトリに置かれますか?画像は、イメージ ubuntu の 4 つのイメージ レイヤーの内容を示しています。 :14.04、および各イメージ レイヤ内の第 1 レベルのディレクトリの状況。追加の注意は、イメージ レイヤー d2a0ecffe6fa には何もないことです。


ミラー json ファイル ストレージ

各イメージ レイヤーに対して、Docker は対応する json ファイルを保存します。json ファイル ストレージ パスは /var/lib/docker/graph、ubuntu:14.04 です。すべてのイメージ レイヤーの json ファイル ストレージ パスは次のとおりです:

json ファイルに加えて、各イメージ レイヤーには、主にイメージ レイヤー内のファイル コンテンツの合計サイズを記録するレイヤーサイズ ファイルも含まれていることもわかります。ミラー json ファイルについて説明しましたが、次への道を開くために、ubuntu:14.04 中空ミラー層 d2a0ecffe6fa の json ファイルを以下に掲載します。

dockerでコンパイルしたイメージはどのディレクトリに置かれますか?

##ミラー レイヤーの対応するマッピングにより、Dockerfile 命令は CMD であるため、イメージ レイヤーのコンテンツは空です。イメージ レイヤーの json ファイルを変更すると、Cmd フィールドが更新され、新しい Cmd 値が取得されます。更新された Cmd は、後でイメージを介してコンテナーを実行するときに使用できることを示します。


推奨学習: 「

docker ビデオ チュートリアル

以上がdockerでコンパイルしたイメージはどのディレクトリに置かれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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