AFAIK,图像摘要是图像清单正文的散列。
当我busybox从 docker hub拉取镜像并将其推送到我的私有注册表时,摘要会有所不同。
$ docker pull busybox
...
Digest: sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4
Status: Downloaded newer image for busybox:latest
$ docker tag busybox myregistry/busybox
$ docker push myregistry/busybox
...
08c2295a7fa5: Pushed
latest: digest: sha256:8573b4a813d7b90ef3876c6bec33db1272c02f0f90c406b25a5f9729169548ac size: 527
$ docker images --digests
myregistry/busybox latest sha256:8573b4a813d7b90ef3876c6bec33db1272c02f0f90c406b25a5f9729169548ac efe10ee6727f 2 weeks ago 1.13MB
busybox latest sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4 efe10ee6727f 2 weeks ago 1.13MB
Run Code Online (Sandbox Code Playgroud)
图像根本没有改变,图像 id 彼此相同。
但是为什么图像摘要会有所不同呢?
更新:
有趣的是,来自另一个私有注册表的摘要与我的私有注册表的摘要完全相同。
$ docker image inspect efe10ee6727f
...
"RepoDigests": [
"myregistry/busybox@sha256:8573b4a813d7b90ef3876c6bec33db1272c02f0f90c406b25a5f9729169548ac",
"busybox@sha256:2605a2c4875ce5eb27a9f7403263190cd1af31e48a2044d400320548356251c4",
"anotherregistry/busybox@sha256:8573b4a813d7b90ef3876c6bec33db1272c02f0f90c406b25a5f9729169548ac"
],
Run Code Online (Sandbox Code Playgroud) 我经历过,移除了与正在运行的容器相关联的图像的下层(差异).(因此删除了容器中的某些文件)
我认为Docker信息中的"Native Overlay Diff"选项非常可疑.
我的码头信息如下:
$ docker info
...
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: false
...
Run Code Online (Sandbox Code Playgroud)
你们知道'Native Overlay Diff'的确切含义吗?