pull access denied repository does not exist or may require docker login

DockerUbuntu 16.04

Docker Problem Overview


I am using Laravel 4.2 with docker. I setup it on local. It worked without any problem but when I am trying to setup online using same procedure then I am getting error:

pull access denied for <projectname>/php, repository does not exist or may require 'docker login'

is it something relevant to create repository here https://cloud.docker.com/ or need to docker login in command?

After days of study I am still not able to figure out what could be the fix in this case and what are the right steps?

I have the complete code. I can paste here if need to check certain parts.

Docker Solutions


Solution 1 - Docker

Please note that the error message from Docker is misleading.

$ docker build deploy/.
Sending build context to Docker daemon  5.632kB
Step 1/16 : FROM rhel7:latest
pull access denied for rhel7, repository does not exist or may require 'docker login'

It says that it may require 'docker login'. I struggled with this. I realized the image does not exist at https://hub.docker.com any more. I hope this helps someone.

Solution 2 - Docker

Just make sure to write the docker name correctly!

In my case, I wrote (notice the extra 'u'):

FROM ubunutu:16.04

The correct docker name is:

FROM ubuntu:16.04

Solution 3 - Docker

I had the same issue. In my case it was a private registry. So I had to create a secret as shown here

and then we have to add the image pull secret to the deployment.yaml file as shown below.

pods/private-reg-pod.yaml  
apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: <your-private-image>
  imagePullSecrets:
  - name: regcred

Solution 4 - Docker

The message usually comes when you put the wrong image name. Please check your image if it exists on the Docker repository with the correct tag. It helped me.

docker run -d -p 80:80 --name ngnix ngnix:latest
Unable to find image 'ngnix:latest' locally
docker: Error response from daemon: pull access denied for ngnix, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
$ docker run -d -p 80:80 --name nginx nginx:latest
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx

Solution 5 - Docker

November 2020 and later

If this error is new, and pulling from Docker Hub worked in the past, note Docker Hub now introduced rate limiting in Nov 2020

You will frequently see messages like:

> Warning: No authentication provided, using CircleCI credentials for pulls from Docker Hub.

From Circle CI and other similar tools that use Docker Hub. Or:

> Error response from daemon: pull access denied for cimg/mongo, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

You'll need to specify the credentials used to fetch the image:

For CircleCI users:

      - image: circleci/mongo:4.4.2

        # Needed to pull down Mongo images from Docker hub
        # Get from https://hub.docker.com/
        # Set up at https://app.circleci.com/pipelines/github/org/sapp
        auth:
          username: $DOCKERHUB_USERNAME
          password: $DOCKERHUB_PASSWORD

Solution 6 - Docker

I solved this by inserting a language at the front of the docker image

FROM python:3.7-alpine

Solution 7 - Docker

I had the same issue

pull access denied for microsoft/mmsql-server-linux, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Turns out the DockerHub was moved to a different name So I would suggest you re check-in docker hub

Solution 8 - Docker

I had the same error message but for a totally different reason.

Being new to docker, I issued

> docker run -it <crypticalId>

where <crypticalId> was the id of my newly created container.

But, the run command wants the id of an image, not a container.

To start a container, docker wants

> docker start -i <crypticalId>

Solution 9 - Docker

I had this because I inadvertantly remove the AS tag from my first image:

ex:

FROM mcr.microsoft.com/windows/servercore:1607-KB4546850-amd64
...
.. etc ...
...
FROM mcr.microsoft.com/windows/servercore:1607-KB4546850-amd64
COPY --from=installer ["/dotnet", "/Program Files/dotnet"]
... etc ...

should have been:

FROM mcr.microsoft.com/windows/servercore:1607-KB4546850-amd64 AS installer
...
.. etc ...
...
FROM mcr.microsoft.com/windows/servercore:1607-KB4546850-amd64
COPY --from=installer ["/dotnet", "/Program Files/dotnet"]
... etc ...

Solution 10 - Docker

I had the same issue when working with docker-composer. In my case it was an Amazon AWS ECR private registry. It seems to be a bug in docker-compose

https://github.com/docker/compose/issues/1622#issuecomment-162988389

After adding the full path "myrepo/myimage" to docker compose yaml

> image: xxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/myrepo:myimage

it was all fine.

Solution 11 - Docker

In my case I was using a custom image and docker baked into Minikube on my local machine.

I had specified the pull policy incorrectly:-

imagePullPolicy: Always

But it should have been:-

imagePullPolicy: IfNotPresent

Because the custom image was only present locally after I'd explicitly built it in the minikube docker environment.

Solution 12 - Docker

If the repository is private you have to assign permissions to download it. You have two options, with the docker login command, or put in ~/.docker/docker.config the file generated once you login.

Solution 13 - Docker

if you have over two stage in the docker build process read this solution: this error message is completely misleading.

if you have a two-stage (context) dockerfile and want to copy some data from the first to the second stage, you must label the first context (ex: build) and access it by that label

#stage(1)
from <image> as build 
.
.
#stage(2)
From <image>
copy --from=build /sourceDir  /distinationDir

Solution 14 - Docker

If you're downloading from somewhere else than your own registry or docker-hub, you might have to do a separate agreement of terms on their site, like the case with Oracle's docker registry. It allows you to do docker login fine, but pulling the container won't still work until you go to their site and agree on their terms.

Solution 15 - Docker

This error message might possibly indicate something else.

In my case I defined another Docker-Image elsewhere from which the current Docker inherited its settings (docker-compos.yml):

FROM my_own_image:latest

The error message I got:

qohelet$ docker-compose up
Building web
Step 1/22 : FROM my_own_image:latest
ERROR: Service 'web' failed to build: pull access denied for my_own_image, repository does not exist or may require 'docker login'

Due to a reinstall the previous Docker were gone and I couldn't build my docker using docker-compose up with this command:

sudo docker build -t my_own_image:latest -f MyOwnImage.Dockerfile .

In your specific case you might have defined your own php-docker.

Solution 16 - Docker

Make sure the image exists in docker hub. To me, I was trying to pull MongoDB using the command docker run mongodb which is incorrect. In the docker hub, the image name is mongo.

Solution 17 - Docker

If you don't have an image with that name locally, docker will try to pull it from docker hub, but there's no such image on docker hub. Or simply try "docker login".

Solution 18 - Docker

I had to run docker pull first, then running docker-compose up again and then it worked.

docker pull index.docker.io/youruser/yourrepo:latest

Solution 19 - Docker

Docker might have lost the authentication data. So you'll have to reauthenticate with your registry provider. With AWS for example:

aws ecr get-login --region us-west-2 --no-include-email

And then copy and paste that resulting "docker login..." to authenticated docker.

Source: Amazon ECR Registeries

Solution 20 - Docker

Try this in your docker-compose.yml file

image: php:rc-zts-alpine

Solution 21 - Docker

If you are using multiple Dockerfiles you should not forget to run build for all of it. That was my case.

Solution 22 - Docker

When I run the command multiple times "docker pull scrapinghub/splash" in Power shell then it solve the issue.

Solution 23 - Docker

if it was caused with AWS EC2 and ECR, due to name issue(happens with beginners!)

Error response from daemon: pull access denied for my-app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

when using docker pull use Image URI of the image, available in ECR-row itself as Copy URI

docker pull Image_URI

Solution 24 - Docker

I have seen this message and thought something was wrong about my Docker authentication. However, I've realized that Docker only allows 1 private repository per free plan. So it is quite possible that you are trying to pull your private repository and see this error because have not upgraded your plan.

Solution 25 - Docker

Got the same problem but nothing worked. And then I understood I need run .sh (.ps1) script first before doing docker-compose.

So I have the following files:

   docker-compose.yml
   
   docker-build.sh
   
   docker-build.ps1
   
   Dockerfile

And I had to first run docker-build.sh on Unix (Mac) machine or docker-build.ps1 on Windows:

sh docker-build.sh

It will build an image in my case. And only then after an image has been built I can run:

docker-compose up --build

For references. Here is my docker-compose file:

version: '3.8'

services:

  api-service:
    image: x86_64/prediction-service:0.8.1
    container_name: api-service
    expose:
      - 8060
    ports:
      - "8060:80"    

And here is docker-build.sh:

VERSION="0.8.1"
ARCH="x86_64"
APP="prediction-service"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
docker build -f $DIR/Dockerfile -t $ARCH/$APP:$VERSION .

Solution 26 - Docker

I had misspelled nginx to nignx in Dockerfile

Solution 27 - Docker

In my case the solution was to re-create docker-file through visual studio and all worked perfeclty.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJassView Question on Stackoverflow
Solution 1 - DockerDaniel NelsonView Answer on Stackoverflow
Solution 2 - DockertsohgView Answer on Stackoverflow
Solution 3 - Dockerhushed_voiceView Answer on Stackoverflow
Solution 4 - DockerVishnu DubeyView Answer on Stackoverflow
Solution 5 - DockermikemaccanaView Answer on Stackoverflow
Solution 6 - Dockerkodek-sleuthView Answer on Stackoverflow
Solution 7 - DockerJeet SinghView Answer on Stackoverflow
Solution 8 - DockerGyro GearlooseView Answer on Stackoverflow
Solution 9 - DockerPost ImpaticaView Answer on Stackoverflow
Solution 10 - DockerStefan MateiView Answer on Stackoverflow
Solution 11 - DockermattocarambaView Answer on Stackoverflow
Solution 12 - DockerFacundo Diaz CobosView Answer on Stackoverflow
Solution 13 - Dockermohamad soltani nezamabadiView Answer on Stackoverflow
Solution 14 - DockerJ-hoView Answer on Stackoverflow
Solution 15 - DockerQoheletView Answer on Stackoverflow
Solution 16 - DockerSathishkumar RakkiyasamyView Answer on Stackoverflow
Solution 17 - DockerMax SherbakovView Answer on Stackoverflow
Solution 18 - DockerJhnsbrstView Answer on Stackoverflow
Solution 19 - DockeriAmcRView Answer on Stackoverflow
Solution 20 - DockerHardik RavalView Answer on Stackoverflow
Solution 21 - DockerrenkseView Answer on Stackoverflow
Solution 22 - Dockerkamran kausarView Answer on Stackoverflow
Solution 23 - DockerAjay Tom GeorgeView Answer on Stackoverflow
Solution 24 - DockerMert SevincView Answer on Stackoverflow
Solution 25 - DockerilluminatoView Answer on Stackoverflow
Solution 26 - DockerNishant KumarView Answer on Stackoverflow
Solution 27 - DockerlorenzoKyneView Answer on Stackoverflow