In previous years, there were multiple optimizations to Windows container image sizes.
However, if we look at the full picture, we will find out that lots of savings are lost after LTSC2019.
| Image |
Unpacked size |
ID |
| mcr.microsoft.com/windows/servercore:ltsc2016 |
10.3GB |
2d2526d785fa |
| mcr.microsoft.com/windows/servercore:ltsc2019 |
4.84GB |
a618c5dca893 |
| mcr.microsoft.com/windows/servercore:ltsc2022 |
5.16GB |
7f1b8b9185ba |
| mcr.microsoft.com/windows/servercore:ltsc2025 |
6.86GB |
839fb663b94d |
Another interesting case is mcr.microsoft.com/windows vs mcr.microsoft.com/windows/server. While this page claims that mcr.microsoft.com/windows/server is "slightly smaller than the Windows image", this is very far from being true:
| Image |
Unpacked size |
ID |
| mcr.microsoft.com/windows:ltsc2019 |
9.62GB |
3d607df24767 |
| mcr.microsoft.com/windows/server:ltsc2022 |
10.7GB |
cf92e62dbd14 |
| mcr.microsoft.com/windows/server:ltsc2025 |
15.9GB (ouch!) |
2fcb8c1b2d80 |
And finally, nanoserver:
| Image |
Unpacked size |
ID |
| mcr.microsoft.com/windows/nanoserver:ltsc2019 |
255MB |
1090b09192bc |
| mcr.microsoft.com/windows/nanoserver:ltsc2022 |
293MB |
33403772621b |
| mcr.microsoft.com/windows/nanoserver:ltsc2025 |
501MB (ouch again!) |
571e1fba94e7 |
So, my question is: what has happened to images after LTSC2019 and can't we return back to the smaller sizes?
P.S. Unpacked size and ID were determined by running docker image ls
In previous years, there were multiple optimizations to Windows container image sizes.
However, if we look at the full picture, we will find out that lots of savings are lost after LTSC2019.
Another interesting case is
mcr.microsoft.com/windowsvsmcr.microsoft.com/windows/server. While this page claims thatmcr.microsoft.com/windows/serveris "slightly smaller than the Windows image", this is very far from being true:And finally, nanoserver:
So, my question is: what has happened to images after LTSC2019 and can't we return back to the smaller sizes?
P.S.
Unpacked sizeandIDwere determined by runningdocker image ls