Docker “pull access denied”: check the name, then log in
Verify the repository name, then authenticate with docker login using an access token.
Check the image name for typos, then run docker login with a Docker Hub access token (not your password). If it worked before, log out and back in to refresh stale credentials.
Try these fixes in order
Verify the repository name
Confirm the repository exists and the name, namespace, and tag are exact. Remember the default tag is latest only when you omit it.
Log in with an access token
Authenticate against the registry. Prefer a personal access token over your account password; on Docker Hub create one under Account Settings > Security.
docker loginRefresh stale credentials
If login succeeds but pulls still fail, clear the cached credential and log in again; a rotated token or changed password leaves a stale entry behind.
docker logoutdocker loginRetry the pull
Retry the pull. For private registries other than Docker Hub, include the registry hostname in both the login and the image name.
docker pull myimage:tagInterpret what you see
The image name was typed by hand
What it suggests: Docker cannot tell a typo from a private repo, so it reports both possibilities. Check the exact name first.
Next check: Open the repository page on Docker Hub (or your registry) and compare the name character by character.
The repository exists and is private
What it suggests: Private repositories require authentication even to check existence. An expired token or logged-out CLI produces the same message.
Next check: Run docker login and retry the pull with fresh credentials.
Login used to work and recently stopped
What it suggests: Old credentials cached in the Docker config can silently fail after a password change or token rotation.
Next check: Run docker logout then docker login to replace the stored credential.
Why this happens
- The image name is misspelled or the repository is private and you are not logged in.
- Stored credentials are stale or belong to an account without access to that repository.
Still not working?
Do not paste your Docker Hub password into scripts or Dockerfiles. Create an access token with minimal scopes and store it in a credential helper; tokens can be revoked without changing your account password.
Official sources
These steps are based on the linked documentation and general diagnostics. BugMedic has not independently tested every product and system configuration. Review commands before running them.