102

I was following this post - the reference code is on GitHub. I have cloned the repository on my local.

The project has got a react app inside it. I'm trying to run it on my local following step 7 on the same post:

docker run -p 8080:80 shakyshane/cra-docker

This returns:

Unable to find image 'shakyshane/cra-docker:latest' locally
docker: Error response from daemon: pull access denied for shakyshane/cra-docker, repository does not exist or may require 'docker login'.
See 'docker run --help'.

I tried login to docker again but looks like since it belongs to @shakyShane I cannot access it.

I idiotically tried npm start too but it's not a simple react app running on node - it's in the container and containers are not controlled by npm

Looks like docker pull shakyshane/cra-docker:latest throws this:

Error response from daemon: pull access denied for shakyshane/cra-docker, repository does not exist or may require 'docker login'

So the question is how do I run this docker image on my local mac machine?

Zameer Ansari
  • 28,977
  • 24
  • 140
  • 219
  • 5
    First pull the docker image using the command "docker pull shakyshane/cra-docker:latest" – rajashekar Jun 09 '19 at 07:36
  • @rajashekar I will try it now. Thanks! – Zameer Ansari Jun 09 '19 at 07:37
  • 2
    What is the exact build command you used in step 6? – Joachim Isaksson Jun 09 '19 at 07:41
  • @JoachimIsaksson I cloned the whole repository. The step 6 is the [Dockerfile](https://gist.github.com/anonymous/0bd28c5a53a61d8850433f62f6cf85de#file-dockerfile) – Zameer Ansari Jun 09 '19 at 07:43
  • 4
    Step 6 instructs you to run `docker build . -t shakyshane/cra-docker`. That builds the image with the name `shakyshane/cra-docker` which you are trying to use in step 7. Since it cannot be found, it would seem the image was not built, at least not with the same name. – Joachim Isaksson Jun 09 '19 at 07:45
  • @JoachimIsaksson Damn you, man! Holy moly! I used `docker build . -t xameeramir/cra-docker` I think this is where I am a culprit. – Zameer Ansari Jun 09 '19 at 07:49
  • Unfortunately, I find myself in this situation when the image exists, but the docker run command comes from a shell script that is executed on the terminal from the same dir as the command itself. So when running the command manually, it runs. When running the same command from a shell script at the same directory level, it fails... If you read this and have the same problem, maybe raise a new question. – Bart McLeod Dec 12 '19 at 16:41

13 Answers13

63

Well this is illogical but still sharing so future people like me don't get stuck.

The problem was that I was trying to run a docker image which doesn't exist.

I needed to build the image:

docker build . -t xameeramir/cra-docker

And then run it:

docker run -p 8080:80 xameeramir/cra-docker
Alphonse
  • 15
  • 5
Zameer Ansari
  • 28,977
  • 24
  • 140
  • 219
39

In my case, my image had TAG specified with it and I was not using it.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
testimage          testtag            189b7354c60a        13 hours ago        88.3MB

Unable to find image 'testimage:latest' locally for this command docker run testimage

So specifying tag like this - docker run testimage:testtag worked for me

Ninad Pingale
  • 6,801
  • 5
  • 32
  • 55
27

Posting my solution since non of the above worked. Working on macbook M1 pro.

The issue I had is that the image was built as arm/64. And I was running the command:

docker run --platform=linux/amd64 ...

So I had to build the image for amd/64 platform in order to run it.

Command below:

docker buildx build --platform=linux/amd64 ...

In conclusion your docker image platform and docker run platform needs to be the same from what I experienced.

xMilos
  • 1,519
  • 4
  • 21
  • 36
  • 1
    that was exactly my issue, the error is image not found if the image is the wrong architecture. thanks for your answer! – Moshe Shaham Apr 20 '22 at 07:34
  • I had a similar problem when switching to M1... `docker build --platform=amd64 -t foo .` and then `docker run --platform=amd64 foo` would complain it couldn't find the image. If I remove the platform flag on docker run then it finds it but warns. Instead the right fix was using the full platform `linux/amd64` on the run command. I added it to the build command too for symmetry. – DaveMan Jun 10 '22 at 19:45
  • 1
    I just tried! `docker run --platform=linux/amd64 [CONTAINER_ID]`, but not work (unable to find image), what did i go wrong? – trumsuhu Jul 04 '22 at 15:01
9

In my case, the docker image did exist on the system and still I couldn't run the container locally, so I used the exact image ID instead of image name and tag, like this:

docker run myContainer c29150c8588e
8

I received this error message when I typed the name/character wrong. That is, "name1\name2" instead of "name1/name2" (wrong slash).

Cryptc
  • 2,959
  • 1
  • 18
  • 18
  • You are a good man bro, it worked for me too :))), the issue is the path of linux vs windows which in this case it is windows based path and it worked ::))) – Esmatullah Hanif May 03 '23 at 13:54
2

In my case, I saw this error when I had logged in to the dockerhub in my docker desktop. The repo I was pulling was local to my enterprise. Once i logged out of dockerhub, the pull worked.

codester
  • 117
  • 2
  • 9
2

This just happened to me because my local docker vm on macos ran out of disk space.

I just deleted some old images using docker image prune and it started working correctly again.

Clintm
  • 4,505
  • 3
  • 41
  • 54
1

shakyshane/cra-docker Does not exist in that user's repo https://hub.docker.com/u/shakyshane/

Richard Barber
  • 5,257
  • 2
  • 15
  • 26
1

The problem is you are trying to run an imagen that does not exists. If you are executing a Dockerfile, the image was not created until Dockerfile pass with no errors; so when Dockerfile tries to run the image, it can't find it. Be sure you have no errors in the execution of your scripts.

  • Hey, I think this is not the right answer. The docker image is not public and so this user cannot download the image. – Sownak Roy Apr 22 '20 at 13:05
1

The simplest answer can be the correct one!.. make sure you have permissions to execute the command, use:

sudo docker run -p 8080:80 shakyshane/cra-docker

1

In my case, I didn't realise there was a difference between docker run and docker start, and I kept using the run command when I should've been using the start command.

FYI, run is for building and creating the docker container, start is to just start a stopped container

Adham
  • 11
  • 1
0

Use -d

sudo docker run -d -p 8000:8000 rasa/duckling

learn about -d here

sudo docker run --help
0

At first, i build image on mac-m1-pro with this command docker build -t hello_k8s_world:0.0.1 ., when is run this image the issue appear.

After read Master Yi's answer, i realize the crux of the matter and rebuild my images like this docker build --platform=arm64 -t hello_k8s_world:0.0.1 .

Finally,it worked.

Be_Young
  • 1
  • 1