From here I can't pull or run any windows docker image (from windows or Linux)
When trying from Windows cmd:
Pull:
docker pull mcr.microsoft.com/windows
Using default tag: latest
Error response from daemon: manifest for mcr.microsoft.com/windows:latest not found: manifest unknown: manifest tagged by "latest" is not found
Run:
docker run mcr.microsoft.com/windows:1903
Unable to find image 'mcr.microsoft.com/windows:1903' locally
1903: Pulling from windows
docker: no matching manifest for linux/amd64 in the manifest list entries.
See 'docker run --help'.
Any tips?
docker: no matching manifest for linux/amd64 in the manifest list entries. means this image can just works on windows platform.
Although you works on windows, default docker desktop may use linux container, you should switch to windows container before pull this image using next at desktop tray with mouse right click the docker icon:
After switch, you could pull that image successfully:
C:\Windows\System32>docker pull mcr.microsoft.com/windows:1903
1903: Pulling from windows
af1a530dff54: Downloading [==========> ] 738MB/3.657GB
123ee413bb26: Downloading [===================> ] 994.8MB/2.51GB
BTW, looks latest label not set for this image, so you will have to use detail version, e.g. 19.03.
Related
I've been given a Docker image stored in the gitlab container registry, registry.gitlab.com.
I have a gitlab acount, with a password, and I am able to do a docker login:
docker login registry.gitlab.com
After I do that, I no longer get an authentication error when I try to do a docker command against that registry.
And the documentation for using that registry seems clear:
Go to your project or group’s Packages and registries > Container Registry and find the image you want.
Next to the image name, select Copy.
Use docker run with the image link:
docker run [options] registry.example.com/group/project/image [arguments]
https://docs.gitlab.com/ee/user/packages/container_registry/
But when I run any kind of docker command with the group/project/image I just copied, I just get the "manifest unknown" docker error, which normally indicates that the image is missing or mis-spelled.
So, maybe gitlab is broken, or maybe the gitlab documentation is wrong, or maybe there is something wrong with that particular image, or maybe it doesn't work using docker on WSL through Docker Desktop on Win10, or maybe ... I just haven't set up something correctly.
FWIW, Docker Desktop is a Windows service/application that proxies 'docker' commands in Windows, sending them to a docker instance running on WSL. It's normally transparent. It maintains a local registry, and seems to have some way of connecting to docker hub, but I've never used it with any other registry.
I'd like to pull that image into my local registry. What should I do different?
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
I have installed docker in a system which has no connection to Internet so to run an image with docker, I had to download a simple image from this and from another system. Then I put this image in my offline system in this path : C:\Users\Public\Documents\Hyper-V\Virtual hard disks
but when I run docker run hello-world in cmd I see this message:
Unable to find image 'hello-world:latest' locally
and tries to download hello-world image form Internet but it has to no connection to the Internet so it field. Now I want to know where I should put my images in to be visible to docker?
You can do it the easy way without messing around with folders, by exporting the docker image from any other machine with access to internet:
pull the image on a machine with internet access.
$docker pull hello-world
save that image to a .tar file.
$ docker save --output hello-world.tar {your image name or ID}
copy that file to any machine.
load the .tar file to docker.
$docker load --input hello-world.tar
Check out:
https://docs.docker.com/engine/reference/commandline/image_save/
https://docs.docker.com/engine/reference/commandline/load/#examples
You are trying to start a container using the dockerfile. You need to first build the image from dockerfile. You can do this via
docker build -t < image name > < path >
You will require the internet connection while building the image.
You can check the image in your system using
docker images
Once you build the docker image you can start the container without internet connection using
docker run < image name >
Also you can export the same image using docker save and docker load functionalities.
Docker runs in a client-server architecture environment just almost like git. It can pull resources from the server online with the client on "your machine".
The command $docker pull hello-world requires connection to the server as part of docker itself.
I am trying to write my first application with hyperledger.
I am running on Windows 10 pro 64-bit (10.0, Build 15063).
I have followed the prerequisites below and have installed all the appropriate dependencies from the guide: http://hyperledger-fabric.readthedocs.io/en/latest/prereqs.html.
I am able to use the out of the box scripts ./byfn.sh -m generate to set up my first network.
While trying to execute the script (./startFabric.sh), I get the error
# don't rewrite paths for Windows Git Bash users export MSYS_NO_PATHCONV=1
docker-compose -f docker-compose.yml down
Removing network net_basic
docker-compose -f docker-compose.yml up -d ca.example.com
orderer.example.com peer0.org1.example.com couchdb
Creating network "net_basic" with the default driver
Pulling couchdb (hyperledger/fabric-couchdb:latest)...
ERROR: manifest for hyperledger/fabric-couchdb:latest not found
So I got to https://hub.docker.com/r/hyperledger/fabric-couchdb/
and see that there is no latest tag for fabric-couchdb image
and I download successfully:
docker pull hyperledger/fabric-couchdb:ppc64le-1.0.2
Status: Downloaded
newer image for hyperledger/fabric-couchdb:ppc64le-1.0.2
but I am still receiving the same error
ERROR: manifest for hyperledger/fabric-couchdb:latest not found
even though I can see with docker images that I do have the fabric-couchdb image
REPOSITORY TAG IMAGE ID
CREATED SIZE
hyperledger/fabric-ca latest 7e53be14f804 3
weeks ago 238MB
hyperledger/fabric-ca x86_64-1.0.2 7e53be14f804 3
weeks ago 238MB
hyperledger/fabric-couchdb ppc64le-1.0.2 3a7f22fa9375 3
weeks ago 1.61GB
Is there a way I can get the startFabric.sh to execute properly without the latest couchdb tag?
I fixed the problem.
In "~/abric/fabric-samples/basic-network/docker-compose.yml", in the couchdb section, change the line:
image: hyperledger/fabric-couchdb
to
image: hyperledger/fabric-couchdb:x86_64-0.4.6
This is because Docker automatically pulls the latest image if no specific tag is provided.
I had the same issue a couple of days back on Ubuntu 16! Unfortunately, I missed a step "Download Platform-specific Binaries" in the setup process which didn't installed few required tools like Cryptogen.
Install the tools using the command curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/v1.0.6/scripts/bootstrap.sh | bash -s 1.0.6
Set the path to the bin directory of the installation folder export PATH=<path to download location>/bin:$PATH
Hope it works for you
It seems that you've got a wong edition of hyperleddger/fabric-couchdb, the ppc641e-1.0.2 should go to x86_64-1.0.2. Once right, you can call docker tag to tag it be latest.
I am trying to build a docker image from a docker client (Windows) running this command:
docker --host a.b.c.d build --no-cache=true --build-arg CONFIGURATION=live -t imagename .
The docker host is also a Windows Docker but I get this error:
SECURITY WARNING: You are building a Docker image from Windows against
a non-Windows Docker host. All files and directories added to build
context will have '-rwxr-xr-x' permissions. It is recommended to
double check and reset permissions for sensitive files and
directories.
And then this one after the first attempt:
invalid character '<' looking for beginning of value
Anyone know why this happen? I had no error before, the only differences are in the code source. For information I am using Jenkins to build the project? Thanks.
UPDATE 1 - Dockerfile
FROM microsoft/windowsservercore
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop';"]
ARG CONFIGURATION
EXPOSE 80
ADD src/MyFolder/bin/$CONFIGURATION/ /ContainerFolder
CMD /ContainerFolder/MyApp.exe
From thaJeztah on GitHub:
That warning was added, because the Windows filesystem does not have an option to mark a file as 'executable'. Building a linux image from a Windows machine would therefore break the image if a file has to be marked executable.
For that reason, files are marked executable by default when building from a windows client; the warning is there so that you are notified of that, and (if needed), modify the Dockerfile to change/remove the executable bit afterwards.
This is fixed now. The problem was in the Gateway Firewall, it was detecting a file sent in the build context as a Trojan. Probably Docker build context zip file or use different extensions.