Ich habe versucht, diese Informationen rund um die offiziellen Docker-Dokumente zu finden, hatte aber keinen Erfolg.Wie Docker den Hash jeder Ebene berechnet? Ist es deterministisch?
Welche Informationen berücksichtigt Docker bei der Berechnung des Hashs für jeden Commit/Layer?
Es ist ziemlich offensichtlich, dass die Zeile in der Dockerfile Teil des Hash ist und natürlich der Eltern-Commit-Hash. Aber wird bei der Berechnung dieses Hashes etwas anderes berücksichtigt?
Konkrete Anwendungsfall: Nehmen wir an, ich habe zwei Devs in verschiedenen Maschinen, an verschiedenen Punkten in der Zeit (und aus diesem Grund verschiedene Docker Daemons und verschiedenen Caches) $ docker build ...
gegen den gleichen Dockerfile läuft. Die Direktive FROM ...
gibt ihnen den gleichen Startpunkt, aber ergibt der resultierende Hash jeder Operation denselben Hash? Ist es deterministisch?
Docker 1.10 neues inhaltsadressierbaren Speichermodell eingeführt: siehe https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/ – molivier
mehr in die Tiefe gehende Informationen finden Sie im Design-Dokument; https://gist.github.com/aaronlehmann/b42a2eaf633fc949f93b#id-definitions-and-calculations – thaJeztah
Dank @molivier und @thaJezztah! Sehr gut zu lesen! Es scheint, dass diese Frage viel tiefer ist, als ich erwartet hatte! –