Docker pull doesnt find `latest` tag - docker

When trying to pull the official image for RNA-seq aligner STAR with
docker pull alexdobin/star
I got an error despite copying the Docker Pull Command as shown in the screenshot (lower right)
The error was the following:
Error response from daemon: manifest for alexdobin/star:latest not found: manifest unknown: manifest unknown

The problem is that when you don't specify the tag as part of the image name in the docker command then it is assumed that you are referring to the latest tag.
Further, as there is no image with tag latest present in the repository, you get the error as expected:
Error response from daemon: manifest for alexdobin/star:latest not found: manifest unknown: manifest unknown
Change the tag to one of the available ones and it will work as expected:
docker pull alexdobin/star:2.6.1d

You can open just the tab Tags and copy the pull command as shown in the screenshot (bottom right).
It worked just fine.

Related

Docker: "Unable to pull 'tomcat:8.5' : no matching manifest for linux/arm/v7 in the manifest list entries"

On Raspberry Pi, I got an error when I tried to set up ODK-X Sync Endpoint.
I referred to the instruction from https://docs.odk-x.org/sync-endpoint-manual-setup/
This is the command I ran:
$ mvn clean install
The error message is as below:
Failed to execute goal io.fabric8:docker-maven-plugin:0.34.1:build (start) on project sync-endpoint-docker-swarm: Unable to pull 'tomcat:8.5' : no matching manifest for linux/arm/v7 in the manifest list entries
How can I solve this problem?
The error is fairly clear: tomcat:8.5, which sync-endpoint depends on, does not provide a manifest for the armv7 architecture. You can see this on the page for tomcat's 8.5 tag, showing that it only provides images for linux/amd64 and linux/arm64/v8.
If you need to use that Dockerfile as is and cannot change the tomcat version used, you will need to use a device with a matching architecture. If you are able to modify the Dockerfile and are willing to use a different version of tomcat, it appears that there are other tags which do support linux/arm32/v7.

Docker anaconda manifest not found

I am trying to run docker file but it says this on step 1/6
'''
manifest for continuumio/anaconda3:4.9.2 not found: manifest unknown: manifest unknown
'''
This is the error it is showing
I believe you are getting such message because that tag is not available in Docker Hub. Choosing another image version may solve your problem :)
You can check the available continuumio/anaconda3 tags here https://hub.docker.com/r/continuumio/anaconda3/tags?page=1&ordering=last_updated

Unable to import image encrypted by ctr-enc

I am trying to encrypt the docker images using this tutorial.
I have images stored in Azure Container Registry and I want to encrypt them .
As images from Azure CR are not supported in ctr-enc environment so I am pulling image from Azure CR, tagging it to local registry(sudo docker tag "azure-cr-image-name" localhost:5000/test:0.1) and pushing it(sudo docker push localhost:5000/test:0.1) and then pulling it in ctr-enc from local registry.
All the steps works fine. The image runs successfully so I exported it to a tar file.
The error comes when I try to import the tar file in any other device.
The error is as follows
unpacking localhost:5000/test:0.1 (sha256:7b60c337c1d319c682369508673f8da65ce027cd95917d80abec71c753f90341)...INFO[0119] apply failure, attempting cleanup error="failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount138280154: archive/tar: invalid tar header: unknown" key="extract-395814385-sMwu sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982"
ctr: failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount138280154: archive/tar: invalid tar header: unknown
All I want to know is will this flow work and am I missing something or this entire flow is wrong. I don't have much idea about it so any help will be appreciated.
I resolved the error with the help of following steps.
Tried re-creating the flow and I used this link to setup my local repository.
Pulled image from acr, encrypted it and pushed it to the local registry and started pulling the encrypted image from local registry to the other devices
I got following error in the device
unpacking linux/arm64/v8 sha256:cfd940f7d5d6a6817e8d4f4a811a27263fa11dc00507ebf638ff24be703e5320...
INFO[0293] apply failure, attempting cleanup error="failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: call to DecryptLayer failed: missing private key needed for decryption\n: unknown" key="extract-20510027-zCdy sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982"
ctr: failed to extract layer sha256:0447c1aa276497ad5424dd1f8597b7f667126d868489277bab7aea547a4aa982: call to DecryptLayer failed: missing private key needed for decryption
: unknown
After providing the secret key in the pull command itself the image got downloaded and it ran without any errors.
Pull command example: sudo ctr-enc images pull --plain-http=true --key mykey.pem registry.local.com:5000/encrypted-image/test:0.1
Key Points:
1] Add following line in the hosts file in the device where you are setting up the repository as well as the device in which you want to run the encrypted image. Replace it with your actual IP
Ex:- 192.168.0.1 repository.local.com
2] Add following line in the /docker/daemon.json file for the devices where you are planning to run encrypted image
"insecure-registries":["registry.local.com:5000"]

failed to write digest data in docker image while pulling

I am getting an error while try to pull an image from local registry
failed to write digest data: open ..... no such file or directory
i have tried to pull after removing the docke root directry solved the problem. But still what if i dont want tpo remove my docker root directory?

Manifest peer latest not found error during hyperledger installation.

I have just started exploring the blockchain technology. I was working around the installation part by following this tutorial.
I have created /mychain directory and docker-compose.yml. when i run the command sudo docker-compose up it starts pulling member services hyperledger/fabric-membersrvc. But after that it throws error
Pulling vp0 (hyperledger/fabric-peer:latest)...
ERROR: manifest for hyperledger/fabric-peer:latest not found
Please someone guide me on this.
Change the tag from latest to x86_64-1.0.2 in the compose file. There is no latest tag for this image. You can get all available tags on below link
https://hub.docker.com/r/hyperledger/fabric-peer/tags/
If you don't add any tags to fabric-peer, docker try to pull image with latest tag. And there is no latest tag for fabric-peer.
So you should use an available tag, see available tags here.
I had the similar issue, the problem was fabric failed to download peer binary with tag '2.2.1' and 'latest' during 'curl' command execution with following error.
Peer image getch failed:
====> hyperledger/fabric-peer:2.2.1
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
Error response from daemon: No such image: hyperledger/fabric-peer:2.2.1
Error response from daemon: No such image: hyperledger/fabric-peer:2.2.1
Solution which worked for me:
Have downloaded peer 2.2.1 manually using below command
docker pull "hyperledger/fabric-peer:2.2.1"
NOTE:
"network.sh up" also throws error as it is trying to use peer binary of latest tag which is not present in docker hub. Since 2.2.1 was the latest I have created tag manually using below command.
docker image tag hyperledger/fabric-peer:2.2.1 hyperledger/fabric-peer:latest
Then it worked. You can use your version accordingly.
For HyperLedger 2.3, I found that the 'network.sh' file needs to be edited.
This file can be found under 'fabric-samples/test-network' directory.
Find the constant 'IMAGETAG' and replace its value "latest" into "2.3" or whatever your peer version is.
This constant will be referenced in all the docker-compose files.

Resources