After updating Docker Desktop to the latest version (v4.14.1), pulling images from Docker Hub no longer works, although I am logged in.
> docker pull alpine
Using default tag: latest
[2022-11-25T15:24:57.304539600Z][docker-credential-desktop][W] Windows version might not be up-to-date: The system cannot find the file specified.
Error response from daemon: pull access denied for alpine, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
I've performed the login using the cli too, but still, the same Windows version might not be up-to-date error pops up.
Well, apparently at some point, Docker decided to change the name of the credentials' provider variable in the ~/.docker/config.json from credsStore to credStore. So the correct config file should be:
{
"auths": {
"https://index.docker.in/v1/": {}
},
"credStore": "desktop.exe"
}
Related
I had a docker desktop installed on Mac OS. Everything was working great until I installed a recent update. Now, getting the following error.
> docker pull public.ecr.aws/nginx/nginx:1.21-alpine
Error response from daemon: pull access denied for public.ecr.aws/nginx/nginx, repository does not exist or may require 'docker login': denied: Your authorization token has expired. Reauthenticate and try again.
I did try after login to docker, I tried restarting, cleanup all docker data, factory reset, Uninstalled and installed a latest version. Nothing works.
However the same command works on different machine.
Needed to logout from public ecr
docker logout public.ecr.aws
Ref: https://docs.aws.amazon.com/AmazonECR/latest/public/public-troubleshooting.html
This sounds like a silly problem but I'm not able to pull anything from my own private DockerHub repos.
zsh: docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: my-username
Password:
Login Succeeded
zsh: docker pull my-username/my-app:latest
Error response from daemon: pull access denied for my-username/my-app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
I checked if I misspelt something or don't have the access rights. But even in Docker Desktop, I get the same error when trying to pull an image from the "Remote Repositories"-tab list within the "Images"-menu. When I navigate to the hub.docker.com page I'll see the image.
Havn't found any working solution on the internet.
Thanks!
The simple reson is: you have reached the limit of private repos.
You might want to upgrade, switch to another provider or build your own local image repository.
I answer my own question, so anyone googeling around and trying to fix this issue can find this solution. I upgraded my plan to Docker Pro and continued using DockerHub without any issues.
This question already has answers here:
Docker: "no matching manifest for windows/amd64 in the manifest list entries"
(25 answers)
Closed 2 years ago.
Having failed to install azerothcore normally, I have now tried to install it using docker.
But I am already running into an issue, probably because I am not very experienced with docker.
When I input ./bin/acore-docker-build, it fails at step one, outputting this message:
Sending build context to Docker daemon 862.4MB
Step 1/11 : FROM ubuntu:bionic
bionic: Pulling from library/ubuntu
no matching manifest for windows/amd64 10.0.18362 in the manifest list entries
Unable to find image 'acbuild:latest' locally
C:\Program Files\Docker\Docker\resources\bin\docker.exe: Error response from daemon: pull access denied for acbuild, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'C:\Program Files\Docker\Docker\resources\bin\docker.exe run --help'.
I am not sure what I am supposed to do about this. I am logged into a basic docker account. I went to the docker.exe referenced in the above message and changed permissions for the account running docker to have full permissions. No change. I ran git as administrator. No change.
What should I be doing differently?
Thanks for reading. Willing to clarify anything.
Also, I am using windows 10.
You probably need to have Docker for Desktop opened up and Docker daemon running (icon from bottom left should be green).
I am trying to create a manifest for my docker hub repository such that I have a multi-platform image.
My procedure was as follows:
I started with creating an empty repository and pushing two images to it, one for amd64 and one for arm64. These images can be previewed here: https://hub.docker.com/repository/docker/shadash/docker-multiarch-glusterfs-plugin
I login to my docker hub account using the CLI. I tried the following methods and the response is "Login Succeeded":
docker login --username=shadash
docker login docker.io --username=shadash
docker login https://index.docker.io/v1 --username=shadash
docker login
I attempt to create a manifest:
docker manifest create shadash/docker-multiarch-glusterfs-plugin:latest shadash/docker-multiarch-glusterfs-plugin:x86_64 shadash/docker-multiarch-glusterfs-plugin:aarch64
And the result is:
errors:
denied: requested access to the resource is denied
unauthorized: authentication required
I tried using the manifest-tool (https://github.com/estesp/manifest-tool)
git clone https://github.com/estesp/manifest-tool
cd manifest-tool
make
./manifest-tool push from-spec someimage.yaml
someimage.yaml:
image: shadash/docker-multiarch-glusterfs-plugin:latest
manifests:
- image: shadash/docker-multiarch-glusterfs-plugin:x86_64
platform:
architecture: amd64
os: linux
- image: shadash/docker-multiarch-glusterfs-plugin:aarch64
platform:
architecture: arm64
os: linux
Result:
FATA[0001] Inspect of image "shadash/docker-multiarch-glusterfs-plugin:x86_64" failed with error: errors:
denied: requested access to the resource is denied
unauthorized: authentication required
So it appears the problem is related to the inspection of my existing image(s). However, I can download and install these plugins just fine (tested on 3 different machines) and they also work when I launch a stack that uses this volume driver:
docker plugin install shadash/docker-multiarch-glusterfs-plugin:x86_64
docker plugin install shadash/docker-multiarch-glusterfs-plugin:aarch64
I am really stuck here and I have no idea why I cannot create a manifest image based on those images. I have successfully created a manifest image for jenkins, see https://hub.docker.com/repository/docker/shadash/docker-multiarch-jenkins
This can happen if the images you're referencing haven't been pushed.
For example, if either shadash/docker-multiarch-glusterfs-plugin:x86_64 or shadash/docker-multiarch-glusterfs-plugin:aarch64 from your example in step 3 haven't been pushed, then you'll get this error message.
The solution is to push the images before running docker manifest create.
I have an internal company docker repository.
When I was added to it, I received a repository url of the format:
https://docker.mycompany.com/repositories/myusername/myrepository
Ok. great.
I've created a Dockerfile and I have built the docker image.
docker build -t business-services:latest .
Everything works.
I do a
docker images
and I see:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
business-services latest aaaaaaaaaaaa 3 hours ago 120MB
openjdk 8-jdk-alpine bbbbbbbbbbbb 2 weeks ago 103MB
Great!
Now I'm trying to push "business-services:latest" to:
https://docker.mycompany.com/repositories/myusername/myrepository
...
Here is where things go awry.
First, before you ask, YES, I did a login.
docker login https://docker.mycompany.com/repositories/myusername/myrepository
Username: myusername
Password:
Login Succeeded
The issue comes when I try to "tag" it and then push it.
It looks like the tag name is some kind of mixture of concerns....between the remote docker repository and the image:release. :( Boo.
If I tag it this way:
docker tag business-services:latest docker.mycompany.com/repositories/myuserna/business-services:latest
and i do docker images I see this:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
business-services latest aaaaaaaaaaaa 3 hours ago 120MB
docker.mycompany.com/myusername/myrepository/business-services latest aaaaaaaaaaaa 3 hours ago 120MB
openjdk 8-jdk-alpine 04060a9dfc39 2 weeks ago 103MB
and then try to push it like this
docker push docker.mycompany.com/myusername/myrepository/business-services
The push refers to repository [docker.mycompany.com/myusername/myrepository/business-services]
denied: requested access to the resource is denied
so its confusing the repository name
I did it this way too, just to make sure
docker push docker.mycompany.com/myusername/myrepository/business-services:latest
The push refers to repository [docker.mycompany.com/myusername/myrepository/business-services]
denied: requested access to the resource is denied
same error :(
Then I tried this:
docker tag business-services:latest docker.mycompany.com/business-services:latest
docker push docker.mycompany.com/business-services:latest
The push refers to repository [docker.mycompany.com/business-services]
denied: requested access to the resource is denied
That doesn't work because i'm not giving myuser/myrepository in the value.
Gaaaaaaaaaaa
This "mixture" of the remote url and the container name is driving me nuts.
At some point of trying to figure out the string voodoo, I got this error:
The push refers to a repository
An image does not exist locally with the tag:
What is the magic sauce for pushing to a url name like
docker.mycompany.com/myusername/myrepository
and who came up with this mix the target repository WITH the imagename voodoo?
Or am I completely off-base for how to push something to a internal company docker repository
RESEARCH stuff I found below:
https://docs.docker.com/engine/reference/commandline/push/#examples
Now, push the image to the registry using the image ID. In this
example the registry is on host named registry-host and listening on
port 5000. To do this, tag the image with the host name or IP address,
and the port of the registry:
$ docker tag rhel-httpd registry-host:5000/myadmin/rhel-httpd
$ docker push registry-host:5000/myadmin/rhel-httpd
Yes, I have researched this, thus how I got this far with my journey.
docker --version
Docker version 18.09.0, build 4d60db4
Thanks !!
Append
I followed these instructions:
http://karlcode.owtelse.com/blog/2017/01/25/push-a-docker-image-to-personal-repository/
under the "Push to your private repository" area.
Same error. can't find the URL
docker tag business-services docker.mycompany.com/myusername/myrepository/business-services:latest
docker push docker.mycompany.com/myusername/myrepository/business-services:latest
The push refers to repository [docker.mycompany.com/myusername/myrepository/business-services]
denied: requested access to the resource is denied
Do you have any other images from this repository? check the tags and make yours similar. Anyway, it is your company internals, it could be configured in different ways and better to ask internal guys who support this repo. Also, ask them to check your permissions.
for example, in my case works something like artifactory.company.com:10001/myusername/virtualreponame/imagename:latest
but in your case, it could be completely differ
So I finally got this to work
docker tag business-services
docker.mycompany.com/myusername/business-services:latest
docker push docker.mycompany.com/myusername/business-services:latest
It looks like the "short name" (in this case "business-services")... ~becomes~ the repository name. Or something like that.
and the repository on the docker trusted repository shows up as:
https://docker.mycompany.com/repositories/myusername/business-services
Anyways. It looks silly now. I hope that helps someone in the future.