pull access denied 🐳 Docker

pull access denied for image, repository does not exist or may require 'docker login'

Docker couldn’t pull the image: the name or tag is wrong, the repository is private and you’re not logged in, or it doesn’t exist on that registry.

Seen on: Docker

Meaning

Docker says the same thing for “doesn’t exist” and “not allowed” so it doesn’t leak private repo names. Usually the image name has a typo, is missing the registry/namespace prefix (myorg/app, ghcr.io/org/app), or you built the image locally under a different name and Docker is trying Docker Hub.

Common causes

  • Typo in image name or tag
  • Private repository and not logged in (or logged in to a different registry)
  • Missing registry prefix (ghcr.io/…, 123.dkr.ecr…/…) so Docker Hub is tried
  • Local image built with a different name/tag
  • Image deleted or never pushed

⚡ Quick fix

  1. Check the exact name: docker images / registry UI
  2. docker login <registry> with an account that has access
  3. Use the full name including registry and tag

Detailed fix by platform

Docker

  1. bash
    docker login ghcr.io -u USERNAME
    docker pull ghcr.io/myorg/app:1.4.2

Docker Compose

  1. bash
    services:
      web:
        image: myorg/web:latest   # or build: . to use a local Dockerfile instead of pulling

How to diagnose

  1. Name — Exact repo/tag on the registry?
  2. Login — docker info | grep -i registry; cat ~/.docker/config.json
  3. Local — docker images | grep app

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.