使用ruby镜像作为测试镜像,ruby:latest的原始manifest内容如下:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 7286,
"digest": "sha256:046e6d725a3c4395ae7985dead42e5480f8b917deaca34cb398532742351be75"
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 55038615,
"digest": "sha256:a8ca11554fce00d9177da2d76307bdc06df7faeb84529755c648ac4886192ed1"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 5164893,
"digest": "sha256:e4e46864aba2e62ba7c75965e4aa33ec856ee1b1074dda6b478101c577b63abd"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 10877392,
"digest": "sha256:c85a0be79bfba309d1f05dc40b447aa82b604593531fed1e7e12e4bef63483a5"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 54587188,
"digest": "sha256:195ea6a58ca87a18477965a6e6a8623112bde82c5b568a29c56ce4581b6e6695"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 196869296,
"digest": "sha256:157f16ed0a0c119e5015d22d95fd158bf9e85654611b870b79cca3987442948b"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 199,
"digest": "sha256:3cb3f18bcb199397b36c68158d9374e051aeedad641fb8923a90929ba64ea8db"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32593696,
"digest": "sha256:9b1efc16061ba8c2f99efe4a066792f78d4a03c2c40d01dbe84e1a44bf58ed12"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 175,
"digest": "sha256:c9c081f4a2ff8a8b3b9aaba8158aea5f5051d43dddec05d8c186128b384aac55"
}
]
}
从该镜像运行容器建立新的层并commit为新镜像,得到新镜像的manifest为:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"config": {
"mediaType": "application/vnd.docker.container.image.v1+json",
"size": 7308,
"digest": "sha256:24afdf1db1204cb809bb940c0b1e271df06aba58116dc1950894fbe54c163d2f"
},
"layers": [
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 55038615,
"digest": "sha256:a8ca11554fce00d9177da2d76307bdc06df7faeb84529755c648ac4886192ed1"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 5164893,
"digest": "sha256:e4e46864aba2e62ba7c75965e4aa33ec856ee1b1074dda6b478101c577b63abd"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 10877392,
"digest": "sha256:c85a0be79bfba309d1f05dc40b447aa82b604593531fed1e7e12e4bef63483a5"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 54587188,
"digest": "sha256:195ea6a58ca87a18477965a6e6a8623112bde82c5b568a29c56ce4581b6e6695"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 196869296,
"digest": "sha256:157f16ed0a0c119e5015d22d95fd158bf9e85654611b870b79cca3987442948b"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 199,
"digest": "sha256:3cb3f18bcb199397b36c68158d9374e051aeedad641fb8923a90929ba64ea8db"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 32593696,
"digest": "sha256:9b1efc16061ba8c2f99efe4a066792f78d4a03c2c40d01dbe84e1a44bf58ed12"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 175,
"digest": "sha256:c9c081f4a2ff8a8b3b9aaba8158aea5f5051d43dddec05d8c186128b384aac55"
},
{
"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
"size": 281,
"digest": "sha256:43e3a41700d57f465e0138dfb3784349f43190c69a9a30c771f1560d62bf9765"
}
]
}
可以看到最后一行是新增的层所以最底层应该是layers列表中的第一个层。