Hello. I have built a multi-architecture image that looks like:
{
"schemaVersion": 2,
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"manifests": [
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 742,
"digest": "sha256:9ea3ea0478769884c5be0caf15c70c97ef47ae894fddeb48779dc3fd404fd67a",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 3459,
"digest": "sha256:bcaed176b5f2c5ea1092249252f42db5ae8814dd3f5536b94313cdc976ef5b37",
"platform": {
"architecture": "amd64",
"os": "windows",
"os.version": "10.0.17763.5458"
}
},
{
"mediaType": "application/vnd.docker.distribution.manifest.v2+json",
"size": 3459,
"digest": "sha256:0f8a9f04e95afe0db02b867644f0b62bae7bd57c73c47dd4be06edd36fbceb4e",
"platform": {
"architecture": "amd64",
"os": "windows",
"os.version": "10.0.20348.2322"
}
}
]
}
When I run docker info locally I see:
Operating System: Microsoft Windows Version 23H2 (OS Build 22631.3296)
When I run a docker pull on my image I see the following in the event log after enabling debugging:
debug: will prefer Windows entries with version 10.0.22631
debug: ignoring linux/amd64 with media type application/vnd.docker.distribution.manifest.v2+json, digest sha256:9ea3ea0478769884c5be0caf15c70c97ef47ae894fddeb48779dc3fd404fd67a
debug: found match windows/amd64 10.0.17763.5458 with media type application/vnd.docker.distribution.manifest.v2+json, digest sha256:bcaed176b5f2c5ea1092249252f42db5ae8814dd3f5536b94313cdc976ef5b37
debug: found match windows/amd64 10.0.20348.2322 with media type application/vnd.docker.distribution.manifest.v2+json, digest sha256:0f8a9f04e95afe0db02b867644f0b62bae7bd57c73c47dd4be06edd36fbceb4e
But when I inspect the image on my local machine I see the oldest OsVersion. So docker pull
elected to pull the oldest image in the multi architecture image that matched my machine’s architecture.
"Architecture": "amd64",
"Os": "windows",
"OsVersion": "10.0.17763.5458"
So my local OS Version is 10.0.22631, and the multi-arch image contains OS Versions 10.0.17763.5458 and 10.0.20348.2322. Why is docker pull grabbing 10.0.17763 and is there a way I can request 10.0.20348?
Kind regards,
Jason.