9

私の理解では、Docker は dockerfile のすべての段階でイメージ レイヤーを作成します。

同じマシン (X >=2) で X 個のコンテナーを実行していて、すべてのコンテナーに共通の基盤となるイメージ レイヤー (つまり、debian) がある場合、docker はそのマシンにベース イメージのコピーを 1 つだけ保持しますか?コンテナごとに複数のコピー?

これが壊れるポイントはありますか、それとも dockerfile のすべてのレイヤーに当てはまりますか?

これはどのように作動しますか?

Kubernetes はこれに何らかの影響を与えますか?

4

1 に答える 1

11

Dockersイメージ、コンテナー、およびストレージ ドライバーの詳細を理解します。

Docker 1.10 以降、イメージを構成するすべてのレイヤーには、ビルド時に関連付けられた SHA256 セキュア コンテンツ ハッシュがあります。このハッシュは、レイヤーのコンテンツが同じである限り、ホストとビルド全体で一貫しています。

任意の数のイメージがレイヤーを共有する場合、そのレイヤーの 1 つのコピーのみが保存され、Docker エンジンのそのインスタンスのすべてのイメージで使用されます。

のようなタグはdebian、新しいリリースが出てくると、時間の経過とともに複数の SHA256 イメージ ハッシュを参照できます。で構築された 2 つのイメージはFROM debian、SHA256 ハッシュが一致する場合にのみ、レイヤーを共有するとは限りません。

下で Docker エンジンを実行するものはすべて、このストレージ設定を使用します。

この共有は、Docker レジストリでも機能します (最良の結果を得るには >2.2)。そのレジストリに既に存在するレイヤーを含むイメージをプッシュする場合、既存のレイヤーはスキップされます。レイヤーをローカル エンジンにプルする場合と同じです。

于 2016-08-06T14:46:15.613 に答える