How to fix Unable to find image locally. Error response from daemon: pull access denied for myapp, repository does not exist or may require docker login in Docker

DockerBEGINNERMEDIUMUpdated Dec 6, 2025ยท 532 views

Docker cannot find or access the image. The image name may be misspelled, the repository is private and requires authentication, or the image does not exist.

Quick fix

Fixes Unable to find image locally. Error response from daemon: pull access denied for myapp, repository does not exist or may require docker login

# Format: [registry/][namespace/]repository[:tag]
# Examples:
docker pull nginx                    # Docker Hub official
docker pull myuser/myapp             # Docker Hub user repo
docker pull ghcr.io/owner/repo:v1    # GitHub Container Registry
docker pull myregistry.com/app:latest
  1. Verify the image name and tag
  2. Log in to the registry
  3. Check if using correct registry
  4. Check for rate limiting
docker โ€” error
# Format: [registry/][namespace/]repository[:tag]
# Examples:
docker pull nginx # Docker Hub official
docker pull myuser/myapp # Docker Hub user repo
docker pull ghcr.io/owner/repo:v1 # GitHub Container Registry
docker pull myregistry.com/app:latest
Unable to find image locally. Error response from daemon: pull access denied for myapp, repository does not exist or may require docker login

What this error means

This error occurs when Docker cannot locate the requested image. Docker first checks locally, then attempts to pull from the configured registry (Docker Hub by default). The error indicates the image was not found locally AND the pull failed. The message "may require docker login" suggests the repository might be private, requiring authentication before Docker can access it.

Typical symptoms

  • docker run or docker pull fails with access denied
  • Error appears after checking locally and attempting remote pull
  • Image name with typos fails while correct name works
  • Private repository images fail without authentication
  • Works for public images but not private ones

Common causes

  1. Image name is misspelled or has wrong tag
  2. Image does not exist in the registry
  3. Repository is private and requires docker login
  4. Wrong registry specified (or missing registry prefix)
  5. Docker Hub rate limiting for anonymous pulls
  6. Network issues preventing access to registry
  7. Image was deleted from the registry

How to fix "Unable to find image locally. Error response from daemon: pull access denied for myapp, repository does not exist or may require docker login"

1Verify the image name and tag

Double-check the exact image name:

bash
# Format: [registry/][namespace/]repository[:tag]
# Examples:
docker pull nginx                    # Docker Hub official
docker pull myuser/myapp             # Docker Hub user repo
docker pull ghcr.io/owner/repo:v1    # GitHub Container Registry
docker pull myregistry.com/app:latest

Search Docker Hub to verify the image exists:

bash
docker search <image_name>
2Log in to the registry

For private repositories, authenticate first:

bash
# Docker Hub
docker login

# Other registries
docker login ghcr.io
docker login myregistry.azurecr.io

# With username
docker login -u myusername

Enter your password or access token when prompted.

3Check if using correct registry

Ensure you are pulling from the right registry:

bash
# Docker Hub (default, no prefix needed)
docker pull nginx

# GitHub Container Registry
docker pull ghcr.io/owner/image

# Amazon ECR
docker pull 123456789.dkr.ecr.us-east-1.amazonaws.com/myapp

# Google Container Registry
docker pull gcr.io/project-id/image

Missing the registry prefix causes Docker to look in Docker Hub.

4Check for rate limiting

Docker Hub limits anonymous pulls. Check your limit:

bash
# Check remaining pulls (anonymous)
curl -s "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token | cut -d. -f2 | base64 -d | jq

# Or check headers during pull
TOKEN=$(curl -s "https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/nginx:pull" | jq -r .token)
curl -sI -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/library/nginx/manifests/latest | grep -i ratelimit

Log in to increase limits or use a registry mirror.

5Build the image if missing

If the image should exist locally from a build:

bash
# List local images
docker images

# Build from Dockerfile
docker build -t myapp:latest .

# Tag for a registry
docker tag myapp:latest myregistry.com/myapp:latest
6Use docker-compose properly

In docker-compose, ensure image names are correct:

yaml
services:
  app:
    # Use build if you have a Dockerfile
    build: .
    # OR use image if pulling
    image: myregistry.com/myapp:latest

Run docker-compose build if using build context.

Advanced notes

Personal Access Tokens: Docker Hub now requires personal access tokens (PAT) instead of passwords for CLI login. Generate one at hub.docker.com/settings/security.

CI/CD Authentication: Store registry credentials as secrets:

bash
echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin

Registry Mirrors: Configure mirrors in /etc/docker/daemon.json for faster pulls and to avoid rate limits:

json
{
  "registry-mirrors": ["https://mirror.gcr.io"]
}

Frequently asked questions

What does "Unable to find image locally. Error response from daemon: pull access" mean?
This error occurs when Docker cannot locate the requested image. Docker first checks locally, then attempts to pull from the configured registry (Docker Hub by default). The error indicates the image was not found locally AND the pull failed.
How do I fix "Unable to find image locally. Error response from daemon: pull access"?
Docker cannot find or access the image. The image name may be misspelled, the repository is private and requires authentication, or the image does not exist.
What causes "Unable to find image locally. Error response from daemon: pull access"?
Image name is misspelled or has wrong tag Image does not exist in the registry Repository is private and requires docker login
Is the "Unable to find image locally. Error response from daemon: pull access" error serious?
It is a medium-severity error โ€” more of a blocker than a risk. The steps above resolve it.

Official resources & further reading