NGINX: web server, reverse proxy, cache and load balancer. Signed; SBOM and SLSA v1 provenance.
4.0K
readystack/nginx:1.31.8-CE-ubuntu24.04-r2
Source, recipe and records
release-1.31.8): https://github.com/nginx/nginx/tree/140aa942711868a8daeb95810bc9a81f272ada72A cosign-signed build of github.com/nginx/nginx tag release-1.31.8, built clean-room from official upstream source by ReadyStack.
Who: Web developers and system administrators who serve websites and put applications behind a reverse proxy.
Why: NGINX is an HTTP web server, reverse proxy, content cache and load balancer, and can also proxy TCP, UDP and mail traffic.
Use case: A team serves a web application's pages and its API from the same address. NGINX serves the static files directly, terminates TLS, caches responses, and passes API requests to a pool of application servers with load balancing.
About the upstream project, written from its own description: https://github.com/nginx/nginx · https://nginx.org/en/
Signature, user and attestations below were measured on the published digest sha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf on 2026-11-05.
04daa92344a52dbc) on this release's index digest sha256:2a98421715e5844ebbc6a61f2afb209727742cc685b126d2b61e83b0632507bf; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/nginx:1.31.8-CE-ubuntu24.04-r2.nginx).This image follows the ReadyStack release-tag convention:
The current release is 1.31.8-CE-ubuntu24.04-r2 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement.
Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.
Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html
Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.
# ✓ current release
docker pull readystack/nginx:1.31.8-CE-ubuntu24.04-r2
# ✗ unsupported (do not pull)
docker pull readystack/nginx:internal-...
This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/nginx:1.31.8-CE-ubuntu24.04-r2 (the signature is recorded in the public Sigstore transparency log). Support: [email protected], as set out in the ReadyStack Agreement.
Single container. The nginx master process is the container's main process (ENTRYPOINT /opt/nginx/sbin/nginx with the default arguments -g 'daemon off;') and starts the worker processes. nginx is compiled from source by this image's build (./auto/configure, make, make install). No database, no sidecar and no state kept on disk: with no mounts at all, the shipped configuration (/etc/nginx/nginx.conf and /etc/nginx/conf.d/default.conf) serves upstream's welcome page and other static files from /usr/share/nginx/html on port 8080. Beyond that, what the server does is decided by the configuration you mount; it works as a web server, a reverse proxy, a TCP/UDP (stream) proxy and a mail proxy.
docker run -d --name nginx -p 8080:8080 readystack/nginx:1.31.8-CE-ubuntu24.04-r2
The shipped default site answers http://localhost:8080/ with upstream's 'Welcome to nginx!' page and http://localhost:8080/healthz with the text ok. To serve your own files, mount them over the document root, for example -v "$PWD/site":/usr/share/nginx/html:ro. Mount configuration one file at a time: -v "$PWD/site.conf":/etc/nginx/conf.d/site.conf:ro adds a site next to the shipped default.conf (nginx.conf includes every /etc/nginx/conf.d/*.conf; an HTTPS site also needs its certificate and key mounted and its port published, see Tls in the handbooks), a file mounted over /etc/nginx/conf.d/default.conf replaces the default site, and a file mounted over /etc/nginx/nginx.conf replaces the main configuration. Mounting a directory over /etc/nginx/conf.d hides the shipped default.conf, which holds the port 8080 site and /healthz, so nothing answers on 8080 and the container turns unhealthy unless that directory provides its own listen 8080; server. Create each file before docker run: for a missing source path -v creates an empty directory instead. The container runs as the non-root nginx user, so mounted files must be readable by that user; keep nginx's own listen ports on 8080 and 8443 and publish them on the host ports you want (for example -p 80:8080).
The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/nginx. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:3b40bdc74c8693e0db68304b4ac021dc00047e6141126af3c08d563c904cc4a0 on 2026-11-05.
This image contains NGINX®.
NGINX® is a registered trademark of F5, Inc.
ReadyStack is not affiliated with or endorsed by F5, Inc.
The name identifies the software in this image; it is built from github.com/nginx/nginx source at release-1.31.8 (commit 140aa9427118). ReadyStack does not modify its source.
ReadyStack uses no project logos.
Trademark policy: https://www.f5.com/company/policies/trademarks (read 2026-11-04).
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:2a9842171…
Size
37.9 MB
Last updated
about 18 hours ago
docker pull readystack/nginx:1.31.8-CE-ubuntu24.04-r2