The short answer
- nginx:1.30-alpine is 3.2 MB smaller unpacked on amd64 (64 MB vs 67 MB, 5% less).
- As a download, caddy:2 is 25 MB compressed against 26 MB for nginx:1.30-alpine: 1.0× less to pull.
- nginx:1.30-alpine has fewer known vulnerabilities: 49 (3 critical or high) against 76 (10 critical or high) in caddy:2.
- 72 of caddy:2's 76 findings have a fixed version available upstream.
- 49 of nginx:1.30-alpine's 49 findings have a fixed version available upstream.
- Base OS: caddy:2 is built on Alpine Linux 3.23.7; nginx:1.30-alpine on Alpine Linux 3.24.3.
- Alpine images use musl libc instead of glibc. Most software runs unchanged; prebuilt binaries linked against glibc (some Python wheels, Node native modules, vendor agents) may not.
- Packages detected: 181 in caddy:2, 71 in nginx:1.30-alpine.
- Filesystem layers: 5 vs 8.
- Platforms: only nginx:1.30-alpine ships i386.
| caddy:2 | nginx:1.30-alpine | |
|---|---|---|
| Download, amd64 | 25 MB | 26 MB |
| Unpacked, amd64 | 67 MB | 64 MB |
| Download, arm64 | 24 MB | 26 MB |
| Base OS | Alpine Linux 3.23.7 | Alpine Linux 3.24.3 |
| Layers | 5 | 8 |
| Packages | 181 | 71 |
| Files | 231 | 951 |
| Known vulnerabilities | C 1H 9M 18L 45? 3 | C 1H 2M 2L 44 |
| Default user | root | root |
| Platforms | 7 | 8 |
| Last pushed | 2 days ago | 3 days ago |
Size
Compressed (download)Unpacked (on disk)
Vulnerabilities
CriticalHighMediumLowUnknown
Compare against something else →
Highlighted cells are lower (smaller or fewer). Sizes from Docker Hub checked 2026-11-01; measurements and SBOMs from 2026-10-26 and 2026-10-26; vulnerability database 2026-11-01. Methodology.