How to pull image from a private repository using containerd? - containerd

How to pull images from a private repository using containerd?
I using the below containerd command to pull an image from a private repository, but it's failing with the below error message.
sudo crictl pull qtech/graphql:latest
FATA[0002] pulling image: rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/qtech/graphql:latest": failed to resolve reference "docker.io/qtech/graphql:latest": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
I did log in using my docker credentials and pulled the same image with success.
azureuser#zk-master:~$ sudo 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: qtech
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
azureuser#zk-master:~$ sudo docker pull qtech/graphql:latest
latest: Pulling from qtech/graphql
40e059520d19: Pull complete
e640ca4424de: Pull complete
3ee146eff338: Pull complete
7a51ccd0399b: Pull complete
c49798e0169e: Pull complete
519f1a159b82: Pull complete
6200637fe07c: Pull complete
5789d71f6f43: Pull complete
Digest: sha256:186ba59f4d3ccb03fd84888fc33aa12a8854f23e566c6e5a870ef7a43c3fb1f1
Status: Downloaded newer image for qtech/graphql:latest
docker.io/qtech/graphql:latest
azureuser#zk-master:~$
But containerd seems to be not picking up those credentials during run time.
So how to pull images from a private repository using containerd?

This worked for me:
crictl pull --creds "UserName:Password" "image details from private registry#SHA details"

Related

Podman Build Gives 404 with Private Registry Image

I am running GitLab CI on an EC2. In one of my steps, I pull an image from my private nexus registry.
I am able to login to registry
podman login --tls-verify=false -u {user}
I am also able to pull an image from that registry
podman pull --tls-verify=false private/nexus/repo/image:1
If, however, I try to build a dockerfile with the same image, I get an error.
FROM private/nexus/repo/image:1
...
Trying to build the above image results in invalid status code from registry 404 not found.
I have no idea what the issue is.

error pulling postgres on windows using thingsboard/tb-postgres

I got an error when pulling postgre for thingsboard on docker windows
The pulling wasnt completed, and it says:
invalid character 'c' looking for beginning of value
its always error even after creating docker volume as the documentation said.
can anyone help me solve this problem so i can pull postgres on docker windows?
thankyou
OS:Windows 11
Just tried pulling the image on windows 10
In my case everything worked fine:
docker pull thingsboard/tb-postgres
Using default tag: latest
latest: Pulling from thingsboard/tb-postgres
ffbb094f4f9e: Pull complete
0c8eb0702926: Pull complete
298f32cef190: Pull complete
b8d314694c3c: Pull complete
83e0d1c36c4f: Pull complete
de2d6501c95a: Pull complete
d38413442fef: Pull complete
b22f2fcabf27: Pull complete
5845b95c6c6a: Pull complete
512940fe4832: Pull complete
c09b3750140c: Pull complete
8bd36e91c307: Pull complete
172c7c1e53fe: Pull complete
dfcecd4baf49: Pull complete
27cf92a2adb9: Pull complete
1c8a3d27af9e: Pull complete
b977bd73820c: Pull complete
cc2d419dece3: Pull complete
4907be36a3ee: Pull complete
d3b283f7f8a6: Pull complete
a7ad9c8e0806: Pull complete
66f4ceabc4d9: Pull complete
90b220518e0f: Pull complete
118b793875dd: Pull complete
9131c7ca2cc7: Pull complete
Digest: sha256:b4b9d2094b80bb05e58e3ac157aeabc253b6aa6c401ba6d7fa338e13462bf19f
Status: Downloaded newer image for thingsboard/tb-postgres:latest
docker.io/thingsboard/tb-postgres:latest

Problem pulling a Docker image from Docker Hub

If I run the 'docker pull' command to pull an image directly from docker hub, it works fine.
But when I pull the image via Artifactory, i.e. with docker hub as the remote repository, then I got this error:
Error response from daemon: manifest for //image1:1.0.0 not found: manifest unknown: The named manifest is not known to the registry.
Another note is, if the image doesn't have the "image path", it works fine.
What is going wrong here? Thanks for your help!
Maybe repo is empty. Check on dockerhub

Jenkins: Can't fetch project's source code from GitLab

I run my Jenkins server on the local machine, and I met problem with fetching project from GitLab repository. I don't know exactly what I have to done.
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "C:\Program Files\Git\bin\git.exe fetch --tags --progress http://repository.vrpconsulting.com/roman.skaskevich/koshcheck-copy.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: Logon failed, use ctrl+c to cancel basic credential prompt.
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://repository.vrpconsulting.com/roman.skaskevich/koshcheck-copy.git/'
GITLAB SETTINGS: here
EDIT #1
When I run git fetch --tags --progress http://repository.vrpconsulting.com/roman.skaskevich/koshcheck-copy.git +refs/heads/*:refs/remotes/origin/* on local machine, it performs successfully and dialog for entering login/password is showed.
But what I have to do that jenkins job performed this command successfully?
EDIT #2
For now, Credentials Binding Plugin helps me implements to checking credentials in Jenkinsfile.
EDIT #3
I run Jenkins server on another machine and have the same problem. I don't want to use login/password, so adding SSH key solved this problem.
Thanks in advance!
Seems like your repo is private. Private git repos requires authentication. Reconfigure your git client plugin check if you are able to connect to remote repo via password based authentication , if not , try SSHing to the repo.
Looks like this ins private repo if you want to clone that repo to jenkins workspace you need to provide your gitlab credentials in jenins.
for that, you need to install jenkins plugin called "Gitlab Authentication plugin". once you completed the installation please do a restart.
Add Gitlab credentials in "Jenkins Credentials Provider: Jenkins".
later you can add your gitlab credentials in Source Code Management
Source Code Management
in credentials select the saved gitlab credentials.
Steps:
Install plugins:
Gitlab
Gitlab authentication
Configure global credentials in jenkins:
go to credentials >> system >> global creds >> username & password
ID: git
username: your gitlab username
password: your gitlab password
Pipeline:
stage('SCM') {
steps {
git credentialsId: 'git', url: 'your gitlab url'
}
}
I got this error too. In my case, the git repo is a private one.
I added the git link and then supplied the git credentials to the particular Jenkins job. The issue is gone and able to build project from Jenkins.

Docker - pull from docker repo fails (EOF / 403) but download from RH repo works

System info :
RHEL 7.1 (fresh install)
Docker 1.6.2
We're using the Docker rpm provided by RH in their "bonus" dvd's.
Issue :
When I pull an image through docker, it only works when it's on the Red Hat repo.
# docker pull openshift3/mysql-55-rhel7
Trying to pull repository registry.access.redhat.com/openshift3/mysql-55-rhel7
...
bb8bf2124de9: Download complete
65de4a13fc7c: Download complete
85400654aa47: Download complete
c537da9944e0: Download complete
6d97b1e161bb: Download complete
0d0dc8d923d6: Download complete
e4ba106b746b: Download complete
Status: Downloaded newer image for registry.access.redhat.com/openshift3/mysql-55-rhel7:latest
When I pull an image from Docker repo... it fails. But - which is imho really weird - with different errors.
So first I pull httpd
# docker pull httpd
Trying to pull repository registry.access.redhat.com/httpd ... not found latest: Pulling from docker.io/httpd
64e5325c0d9d: Pulling fs layer
bf84c1d84a8f: Download complete
6c1a7f5286ab: Download complete
…
ee4d515e8896: Download complete
de94ed779434: Download complete
de94ed779434: **Error pulling image (latest) from docker.io/httpd, ApplyLayer exit status 1 stdout: stderr: unexpected EOF**
FATA[0040] Error pulling image (latest) from docker.io/httpd, ApplyLayer exit status 1 stdout: stderr: unexpected EOF
But, pulling the hello-world gives
# docker pull hello-world
Trying to pull repository registry.access.redhat.com/hello-world ... not found
latest: Pulling from docker.io/hello-world
a8219747be10: Pulling fs layer
a8219747be10: Error pulling dependent layers
91c95931e552: Error pulling image (latest) from docker.io/hello-world, Server error: Status 403 while fetching image layer (a821974FATA[0010] Error pulling image (latest) from docker.io/hello-world, Server error: Status 403 while fetching image layer (a8219747be10611d65b7c693f48e7222c0bf54b5df8467d3f99003611afa1fd8)
I'm on a corporate network and applied what's in this blog concerning proxies and certificate to get it running.
service docker stop
rm -r /var/lib/docker/*
service docker start
Worked for me. Note that this will very likely clear docker
There are couple of things you can do to mitigate this :
If you're seeing this error while pulling large images from private
repo, It could mean that the private repo is busy, as someone else
might be pulling at the same time.
If the size of the image which you're pulling is huge and your machine is under-powered you still
could see this issue, even though you could be pulling from a public
repo.
If none of the above applies to you, then I think you've hit a
strange bug in docker 1.7, Your best bet is to upgrade the client
version to 1.11 or recent.
I also received unexpected EOF when pulling a large image (>2GB). However, the answer for us was to increase the size of the file system where the incoming images were being cached before being moved on to where the docker daemon stored them.
Sounds irrelevant to the real issue of this question but it might be useful for someone else to check in future.

Resources