Docker Labels Reference
Labels used by Gordon for container and image metadata.
Container Labels
Gordon stamps these ownership labels on every container it creates:
| Label | Value | Description |
|---|---|---|
gordon.managed |
"true" |
Identifies Gordon-managed containers |
gordon.app |
App name | App this container serves |
gordon.app.service |
Service name | Service this container runs |
gordon.app.revision |
Revision | Active revision that created it |
gordon.created |
Timestamp | When Gordon created the container |
Queries by logical identity use labels, never name parsing. Resources without these labels (old or foreign containers) are preserved, never adopted or deleted.
Legacy Labels
Containers created before v3 may carry these labels. They are read-only provenance hints for prune guards — Gordon never infers app state from them:
| Label | Value | Description |
|---|---|---|
gordon.domain |
Domain name | Pre-v3 domain this container served |
gordon.image |
Image:tag | Original image from configuration |
gordon.route |
Domain name | Pre-v3 route this container handled |
Backup Metadata
Backups are declarative rather than label-driven. App manifests declare database and volume targets in [services.<name>.backup]; Gordon does not define or write Docker labels to enable backups, select database types or schedules, or identify backup sidecars.
Image Labels
No image-label inference exists in v3: Gordon never creates routes, deploys, or resolves image names from Dockerfile labels. Push with a domain-like name or a gordon.domain label is treated as an ordinary image name. Readiness and proxy ports come from the app manifest ([services.<name>.readiness], [[services.<name>.http]]), not from image labels.
Container Naming
Gordon names containers gordon-<app>--<service>--<instance> where <instance> is the creating operation ID. Retiring containers keep their instance names until removal.
Inspecting Labels
View labels on a container:
docker inspect <container> --format '{{json .Config.Labels}}' | jq
Example output:
{
"gordon.managed": "true",
"gordon.app": "blog",
"gordon.app.service": "web",
"gordon.app.revision": "rev-3",
"gordon.created": "2024-01-15T10:30:00Z"
}
Filtering Containers
Find Gordon-managed containers:
# All Gordon containers
docker ps -f "label=gordon.managed=true"
# Containers for a specific app
docker ps -f "label=gordon.app=blog"