BugMedic

Docker “pull access denied”: check the name, then log in

Verify the repository name, then authenticate with docker login using an access token.

By BugMedic editorial teamLast source review: 2026-09-28Windows, macOS, Linux

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

01

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.

02

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 login
03

Refresh 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 logout
docker login
04

Retry 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:tag

Interpret 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.

Related Docker guides