docker pull downloads an image's layers. BookNest pins the major version, postgres:18, so PostgreSQL 19 1,289 never arrives by surprise; finer tags (18.6) and variants (18-alpine, built on Alpine Linux 13,255 ) also exist:
docker pull postgres:18
docker pull postgres:18-alpine
docker image ls postgres18: Pulling from library/postgres Digest: sha256:5a5a84b19854a9ffaa54082c166ff4ec27473a361e496e5ea167f298f2da9722 Status: Image is up to date for postgres:18 ... 18-alpine: Pulling from library/postgres 5ef7ae0adbc8: Pulling fs layer ... Status: Downloaded newer image for postgres:18-alpine ... IMAGE ID DISK USAGE CONTENT SIZE EXTRA postgres:18 5a5a84b19854 650MB 169MB postgres:18-alpine 77f585114c32 433MB 121MB
postgres:18 was already present, so Docker 514 only compared digests. The Alpine variant arrived as layers fetched in parallel. Engine 29 reports content size (the compressed download) and disk usage (the unpacked layers). Today's 18 is PostgreSQL 18.6 on Debian 13 319 "trixie", published for several CPU architectures; docker pull picks the one matching your machine (History and Manifest). BookNest stays on the Debian image, because Alpine's musl C library changes PostgreSQL's locale and collation behavior, a poor trade for a database whose sort order matters.