Image digest
Docker attribuisce a tutte le immagini un content hash, in alcuni contesti chiamato digest. Si tratta di un hash calcolato sulla base del contenuto dell'immagine.
Non è possibile cambiare una immagine senza cambiare a sua volta il digest. I digest diventano un ottimo strumento per distinguere le immagini, anche quando hanno lo stesso nome e per errore è stato attribuito loro lo stesso tag (faccenda da evitare in assoluto).
Tutte le volte che si esegue il pull di una immagine, uno dei valori restituiti dal comando è il suo digest. E' possibile inoltre visualizzare il digest delle immagini presenti nel nostro erpository locale con il comando:
docker image ls --digest {nome immagine}
E' possibile anche eseguire la pull di una immagine usando il suo digest, invece che il tag:
docker image pull {repository_name}:{digest}
Distribution hash
Quando si effettua la push/pull di un layer verso/da un repository, questo viene compresso per risparmiare spazio. Significa che il digest/hash non corrisponde più a quello del layer originale, perchè comprimendolo è stato per forza di cose modificato. Per permettere a Docker di controllare che il layer non sia stato alterato durante il procedimento di pull/push, esso viene corredato di un secondo digest, quello di distribuzione appunto, che viene calcolato sulla base del layer compresso.