See it as a diagram
Everything below, as a diagram you can edit. Describe yours and see it in seconds.
No account needed · Editable canvas, not a picture
The overview is a copy, and copies drift
The full description lives on Docker Hub, not in the repository. Someone pasted the README into that form once, and unless the team wired up a sync, it has been diverging from the repository ever since. peter-evans/dockerhub-description exists for exactly one reason, pushing README.md into that field on each release, and an action with that single job and that many users is a measurement of how often the two drift.
Wire the sync if you can: a CI step that updates the description on each release keeps the words honest, and several of those tools can also expand relative links into absolute ones on the way through. Then the only remaining question is what the images point at.
Two limits are worth knowing before you write, and they are the ones that action documents because it has to truncate against them: the full description is capped at 25,000 bytes, and the short description shown in search results at 100 characters. A long README with embedded base64 assets hits the first one surprisingly fast.
Absolute image addresses, always
Docker Hub renders Markdown with no repository context, so a relative path resolves to nothing, exactly as on npm and PyPI. Any image in the overview needs a full https address, whether it points at a raw file in the repository or at a rendered diagram.
Given that constraint, the choice is between an address that returns a file frozen at some commit and an address that returns the current drawing. For a container image, whose readers are usually deciding how it will fit into their stack, current wins. The overview text changes at release cadence; the picture can change the day the architecture does.
## What this image runs  Ports, volumes and environment variables are documented below.
What a container page reader actually needs to see
Not the internals of the application. The useful diagram on an image page is the deployment shape: the container itself, the ports it listens on, the datastores and queues it expects to reach, the sidecars or companion containers it assumes, and the external services it calls at runtime.
That is a picture the compose file or the Kubernetes manifests already imply, which is why generating it from the repository beats drawing it by hand. Related material on that path is in a living diagram from Docker Compose and a living diagram from Kubernetes manifests.
Keep the render wide and light on nodes. An image page is skimmed, often by someone comparing three candidate images in three browser tabs.
Rendering details for the overview column
The endpoint accepts format png or jpeg, width from 600 to 4000, height from 400 to 4000, and scale from 1 to 3, defaulting to 1600 by 1000 at 2x. PNG is the right default for a diagram; the JPEG option exists for renders that carry a photographic background.
Caching is handled at the origin: Cache-Control max-age=300 with a long stale-while-revalidate, plus an ETag derived from the canvas state, so an edited diagram appears within minutes and repeat readers get a 304 rather than a re-render.
Interactive views do not apply here. Docker Hub renders sanitized Markdown, so an iframe is not an option; use the image plus a plain link for anyone who wants to zoom.
Public means public
Keeping the picture matched to the image you ship
Connect the repository read-only from GitHub, GitLab or Azure DevOps, choose a branch or tag, and the daily sync regenerates the diagram and an architecture.md. Pointing the sync at the tag you release from is the closest thing to a version-accurate picture without committing one per tag.
For an infrastructure repository the parser is opinionated about what does not belong on a page like this. Resource types classified as wiring never become a box: role assignments, grants, IAM members, policy attachments, secrets and certificates, along with every resource from the random, null, local, time, tls, archive, template and external providers. They are counted rather than drawn, so the architecture document reports a line like eight grants, six permissions, four role assignments while the picture stays a picture. Attributes that name a container, a resource group or a virtual network, are drawn as nesting rather than as arrows, which is why the output has zones instead of a hairball.
When the container is part of a larger platform, one diagram of the platform, embedded from the same address in the Docker Hub overview, the repository README and the docs site, beats three drawings that disagree. See repo to diagram.
FAQ
Does my repository README automatically appear on Docker Hub?
Why is an image in my Docker Hub description not rendering?
How long can a Docker Hub description be?
Can a Docker Hub overview show an interactive diagram?
What should the diagram on a container image page show?