# Docker Image Not Found Locally: How to Pull and Fix Missing Images
You tried to run a container, but Docker can't find the image:
Unable to find image 'myimage:latest' locally
docker: Error response from daemon: pull access denied for myimage, repository does not exist or may require 'docker login'.Or perhaps:
Error: No such image: myimage:latestThis is one of the most common Docker errors. Let me show you how to diagnose and fix it.
Introduction
This article covers troubleshooting steps and solutions for Docker Image Not Found Locally: How to Pull and Fix Missing Images. The error typically occurs in production environments and can cause service disruptions if not addressed promptly.
Symptoms
Common error messages include:
Unable to find image 'myimage:latest' locally
docker: Error response from daemon: pull access denied for myimage, repository does not exist or may require 'docker login'.Error: No such image: myimage:latest```bash # List all local images docker images
# List with specific filter docker images | grep myimage
# Show all tags for an image docker images myimage --all
# List images including intermediate layers docker images -a
# Check for dangling images (untagged) docker images -f "dangling=true" ```
Common Causes
- Configuration misconfiguration
- Missing or incorrect credentials
- Network connectivity issues
- Version compatibility problems
- Resource exhaustion or limits
- Permission or access denied
Step-by-Step Fix
Why Images Aren't Found
The error typically happens for these reasons:
- 1.The image hasn't been pulled to your local machine
- 2.The image name or tag is incorrect
- 3.The image is in a private registry requiring authentication
- 4.The registry is unreachable or the image was deleted
- 5.You're using the wrong Docker context or daemon
Step 1: Check Local Images
First, verify what images you have locally:
```bash # List all local images docker images
# List with specific filter docker images | grep myimage
# Show all tags for an image docker images myimage --all
# List images including intermediate layers docker images -a
# Check for dangling images (untagged) docker images -f "dangling=true" ```
Step 2: Pull the Image
If the image isn't local, pull it from a registry:
```bash # Pull the latest tag docker pull myimage
# Pull a specific tag docker pull myimage:1.2.3
# Pull from a specific registry docker pull registry.example.com/myimage:latest
# Pull all tags for an image docker pull --all-tags myimage ```
After pulling, verify:
docker images myimageStep 3: Fix Image Name and Tag Issues
A common mistake is using the wrong name or tag:
```bash # Check available tags on Docker Hub (if public) # Visit: https://hub.docker.com/r/library/myimage/tags
# Or use the Docker Hub API curl -s "https://hub.docker.com/v2/repositories/library/myimage/tags/" | jq '.results[] | .name'
# Common tag mistakes docker pull nginx # Correct docker pull Nginx # Wrong (case-sensitive) docker pull nginx:latest # Explicit latest docker pull nginx:Latest # Wrong (case-sensitive)
# For private registries, include full path docker pull myregistry.com/team/myimage:v1 ```
Step 4: Handle Authentication Issues
Private registries require login:
```bash # Login to Docker Hub docker login
# Login to a private registry docker login registry.example.com
# Login with username and password docker login -u myuser -p mypassword registry.example.com
# Check logged-in user docker info | grep Username
# Logout when done docker logout registry.example.com ```
Using Docker credentials store:
```bash # Configure credential store in ~/.docker/config.json { "credsStore": "desktop" }
# Or for Linux { "credsStore": "pass" } ```
For CI/CD with registry tokens:
# Use token instead of password
echo "mytoken" | docker login -u myuser --password-stdin registry.example.comStep 5: Build Missing Images
If the image is your own project, build it:
```bash # Build from Dockerfile in current directory docker build -t myimage:latest .
# Build with specific Dockerfile docker build -t myimage:latest -f Dockerfile.prod .
# Build with build arguments docker build -t myimage:latest --build-arg VERSION=1.0 .
# Build from a Git repository docker build -t myimage:latest https://github.com/user/repo.git
# Build specific branch docker build -t myimage:latest https://github.com/user/repo.git#branch-name ```
Step 6: Check Docker Context and Daemon
If you have multiple Docker environments:
```bash # List Docker contexts docker context ls
# Show current context docker context show
# Switch to different context docker context use default
# For Docker Desktop, check you're on the right daemon docker info | grep "Operating System" ```
Remote Docker hosts:
```bash # Check if DOCKER_HOST is set echo $DOCKER_HOST
# Connect to remote Docker export DOCKER_HOST=tcp://remote-host:2375
# Or use context docker context create remote --docker host=tcp://remote-host:2375 docker context use remote ```
Step 7: Registry Connectivity Issues
If you can't reach the registry:
```bash # Test connectivity to Docker Hub curl -I https://registry-1.docker.io/v2/
# Test private registry curl -I https://registry.example.com/v2/
# Check DNS resolution nslookup registry-1.docker.io
# Test with verbose output docker pull --debug myimage:latest ```
Common registry issues:
| Issue | Solution |
|---|---|
| Connection refused | Check firewall, VPN, or proxy |
| Certificate error | Add registry to insecure-registries |
| Rate limited | Wait or authenticate with Docker Hub |
| Not found | Verify image exists and tag is correct |
Configure insecure registry:
// /etc/docker/daemon.json
{
"insecure-registries": ["registry.example.com"]
}# Restart Docker after config change
sudo systemctl restart dockerStep 8: Clean Up and Retry
Sometimes cleanup helps:
```bash # Remove specific image docker rmi myimage:latest
# Pull fresh copy docker pull myimage:latest
# If image is corrupted docker system prune docker pull myimage:latest ```
Step 9: Docker Compose Image Issues
When using Docker Compose, images can be built or pulled:
# docker-compose.yml
version: '3.8'
services:
app:
image: myimage:latest # Pulls from registry
# OR
build: . # Builds from local DockerfileFix Compose image issues:
```bash # Pull all images defined in compose docker-compose pull
# Build images that need building docker-compose build
# Pull and build as needed docker-compose up --pull always
# Force rebuild without cache docker-compose build --no-cache ```
Specific service rebuild:
docker-compose build myservice
docker-compose up -d myserviceStep 10: Handling Manifest and Platform Issues
Multi-architecture images can cause issues:
```bash # Error: no matching manifest for linux/amd64 # Solution: specify platform or use correct image
docker pull --platform linux/amd64 myimage:latest
# In Dockerfile FROM --platform=linux/amd64 myimage:latest
# Check manifest docker manifest inspect myimage:latest ```
Quick Diagnosis Commands
```bash # Is image local? docker images myimage
# Can I pull it? docker pull myimage:latest
# Am I logged in? docker info | grep Username
# What's the error? docker pull myimage:latest 2>&1
# What contexts exist? docker context ls
# Is the daemon running? docker info ```
Prevention
- 1.Use specific tags, not
latest, for reproducibility: - 2.```bash
- 3.docker pull myimage:1.2.3
- 4.
` - 5.Pin image versions in Dockerfiles:
- 6.```dockerfile
- 7.FROM myimage:1.2.3
- 8.
` - 9.Use docker-compose with explicit versions:
- 10.```yaml
- 11.services:
- 12.app:
- 13.image: myimage:1.2.3
- 14.
` - 15.Pre-pull images before deployment:
- 16.```bash
- 17.docker-compose pull
- 18.docker-compose up -d
- 19.
` - 20.Tag your own images consistently:
- 21.```bash
- 22.docker build -t myapp:${VERSION:-latest} .
- 23.
`
Verification
| Task | Command |
|---|---|
| List images | docker images |
| Pull image | docker pull NAME:TAG |
| Pull all tags | docker pull -a NAME |
| Login to registry | docker login REGISTRY |
| Build image | docker build -t NAME:TAG . |
| Remove image | docker rmi NAME:TAG |
| Check context | docker context show |
| Pull for compose | docker-compose pull |
Most "image not found" errors are resolved by pulling the image, checking authentication, or fixing typos in the image name.
Related Articles
- [Fix docker build cache invalidated unnecessary layers Issue in Docker-Errors](docker-build-cache-invalidated-unnecessary-layers)
- [Fix Docker Build Cache Invalidation Optimization Issue in Docker](docker-build-cache-invalidation-optimization)
- [Fix docker build context slow large files Issue in Docker-Errors](docker-build-context-slow-large-files)
- [Fix docker build multi stage copy from not found Issue in Docker-Errors](docker-build-multi-stage-copy-from-not-found)
- [Fix docker buildkit export local tar layer missing Issue in Docker-Errors](docker-buildkit-export-local-tar-layer-missing)
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "TechArticle", "headline": "Docker Image Not Found Locally: How to Pull and Fix Missing Images", "description": "Troubleshoot Docker image not found errors. Learn to pull images, fix registry issues, and resolve tag mismatches with practical solutions.", "url": "https://www.fixwikihub.com/fix-docker-image-not-found", "publisher": { "@type": "Organization", "name": "FixWikiHub", "url": "https://www.fixwikihub.com" }, "author": { "@type": "Person", "name": "FixWikiHub Editorial Team" }, "datePublished": "2025-11-13T07:51:32.694Z", "dateModified": "2025-11-13T07:51:32.694Z" } </script>