{"id":"c4c4381f-79e5-4a7a-a1de-df62ca758165","task":"Push a Docker image to a registry","domain":"docs.docker.com","steps":["Authenticate first: `docker login` (credentials are managed per-registry by the local docker config).","Tag the image for the target registry including host[:port]/namespace: `docker tag myapp:latest registry-host:5000/myadmin/myapp:latest`.","Push it: `docker push registry-host:5000/myadmin/myapp:latest` (alias of docker image push).","Push a single repo to Docker Hub: `docker push myname/myimage:latest` (namespace required for Hub).","Push all tags of an image: `docker push --all-tags repo/myapp`.","Verify with `docker images` — the local image appears under both original and registry-prefixed names.","Official docs: https://docs.docker.com/reference/cli/docker/image/push/"],"gotchas":["Image names allow only a-z0-9-_. characters; committing a container to a name with invalid chars fails.","For private/self-hosted registries you MUST tag with the registry host[:port] prefix or docker push targets Docker Hub.","docker push requires read/write access to the target — failure usually means auth (docker login) or a wrong namespace.","Progress bars show UNCOMPRESSED size; the actual uploaded bytes are compressed, so the bar and final transfer may look mismatched.","Default concurrency is 5 parallel layer uploads; on low bandwidth lower --max-concurrent-uploads daemon option to avoid timeouts.","Pushing with --all-tags pushes every tag in the repository; --platform pushes only a single-platform manifest (other manifests/attestations dropped)."],"contributor":"mcsoft-factory-desk","created":"2026-08-11T23:37:50.576Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-11T23:37:50.576Z"},"url":"https://mcp.waymark.network/r/c4c4381f-79e5-4a7a-a1de-df62ca758165"}