No matching manifest for unknown when pulling microsoft/aspnet - docker

I have a CentOS 7 with Docker installed on a VirtualBox. I am also new to Docker. When I run:
docker pull microsoft/aspnet
I get an error:
no matching manifest for unknown in the manifest list entries
I can see the image listed if I do:
docker search aspnet
Do I understand this correctly that this image is not suitable to run in Docker on Linux? Or is there an error getting the correct manifest - thus 'unknown' in the error message?
Running below command produces:
$ docker info -f '{{.OSType}}/{{.Architecture}}'
linux/x86_64
Some additional information - I was able to pull and successfully use microsoft/dotnet image.

That docker image is based on Windows Server Core as the base OS and also uses IIS as the web server, that makes it Windows only, you can use docker pull microsoft/aspnetcore on Linux. As for microsoft/dotnet it's cross platform and i guess it's basically the same as microsoft/aspnetcore but without the ASP stuff (sorry i'm not that familiar with Windows SDKs and Frameworks).

Related

Docker Launching Microsoft nanoserver container on Windows

I am starting with Docker and trying to launch a very simple command to pull the "nanoserver" container:
docker pull mcr.microsoft.com/windows/nanoserver:2004
The output of this command is
2004: Pulling from windows/nanoserver
no matching manifest for linux/amd64 in the manifest list entries
Why is Docker complaining about not finding "linux" in the manifest of the image if I am trying to execute in pure Windows?
Also, how can I see the contents of that "manifest" ?
Thank you!

When user linux docker image no issues, but windows docker image fails

I get the following error when using windows docker golang image...
Job failed: Error response from daemon: manifest for
golang:latest-windowsservercore-1803 not found
line from .gitlab-ciyml file...
image: golang:latest-windowsservercore
However, when I use the default golang image which is based on linux i think, it works fine with no errors.
the below works...
image: golang:latest
I need the build phase to build windows executable;le hence the change. I have tried lots of different permutations take from...
https://hub.docker.com/_/golang
but nothing works is there something I am doing wrong?
This image is based on Windows Server Core
(microsoft/windowsservercore). As such, it only works in places which
that image does, such as Windows 10 Professional/Enterprise
(Anniversary Edition) or Windows Server 2016.
golang-dockerhub
So if you using gitlib then there is also some limitation and combination of the container.
The Docker executor
GitLab Runner can use Docker to run jobs on user provided images. This
is possible with the use of Docker executor.
The Docker executor when used with GitLab CI, connects to Docker
Engine and runs each build in a separate and isolated container using
the predefined image that is set up in .gitlab-ci.yml and in
accordance in config.toml.
The following table lists what combinations of containers, executors, and OS are supported.
docker executor
You can check also window container limitation here

Where Docker default registry URL is configured?

I am refering to this link - Docker pull.
By default, docker pull pulls images from Docker Hub (https://hub.docker.com).
I would like to know where this link is configured on our local machine setup.
I am using Docker on Windows 10.
You cannot change the default domain of a docker image. This is by design:
Your Docker installation with this "private registry defined in the config file" would be incompatible with every other Docker installation out there. Running docker pull debian needs to pull from the same place on every Docker install.
A developer using Docker on their box will use debian, centos and ubuntu official images. Your hacked up Docker install would just serve your own versions of those images (if they're present) and this will break things.
You should identify your image through the full URL:
<your-private-registry>/<repository>/<image>:<tag>
The default domain docker.io (the "docker hub") is hardcoded in docker's code.
For example here:
https://github.com/docker/distribution/blob/master/reference/normalize.go
Check the function splitDockerDomain which sets docker.io as registry if it's not provided by the user.

What is the use of manifest list in context of docker containers?

I am trying to pull a image from docker hub using a command on windows server 2016
docker pull alpine
The command returns an error as follows
no supported platform found in manifest list
I am not sure what is manifest list and how is this related? Thanks for help.
This might be due to OS compatibility as specified here
To resolve this try to Right click on Docker and select Switch to Windows containers or try adding the --experimental flag to see if it works.
I had the same problem, I was pulling OpenJDK:8 using windows cmd. The container was Windows. I change the container to Linux container and the problem solved.

All public image pulls fail with “filesystem layer verification failed for digest sha256”

I've tried this on at least 5 different versions of Linux and always hit the same wall:
I can use docker to run hello-world successfully. But whenever I try to pull any other image (e.g. ubuntu, nginx) it pulls the pieces in parallel and then ends up with the filesystem layer verification failure. Has anyone seen this problem or can offer advice?
Components:
CentOS 7.3.1611 (3.10.0-514.el7.x86_64) as a Virtual Box VM
Docker 1.10.3
xfs file system
Configuration steps (CentOS):
# yum install docker
# systemctl start docker
# systemctl status docker
# systemctl enable docker
# docker run hello-world (works)
# docker pull ubuntu (fails)
Note: Yum doesn't install docker 1.12 if I try to manually there are conflicts.
Current questions:
Are there issues with docker in a Virtualbox guest host?
Does Docker require a specify type of filesystem?
I read a comment somewhere that fails when trying to pull multiple
pieces in parallel (hello-world is a single chunk), but I can't
verify that. Is there another tiny image I can try?
The only issues I've seen relate to AWS and I'm not using AWS. Could
it be a SHA key issue?
Answer to comment:
Note: I can run the hello-world example and busybox. The are both one layer. Not sure if that has anything to do with it.sudo docker pull debian
Using default tag: latest
Trying to pull repository docker.io/library/debian ...
latest: Pulling from docker.io/library/debian
75a822cd7888: Verifying Checksum
filesystem layer verification failed for digest sha256:75a822cd7888e394c49828b951061402d31745f596b1f502758570f2d0ee79e2
filesystem layer verification failed for digest sha256:75a822cd7888e394c49828b951061402d31745f596b1f502758570f2d0ee79e2
This turned out to be a Virtualbox bug. It makes sense, since every machine I was trying this on was a Virtualbox VM (see original post). In investigating a work-around to download the pieces manually via wget, wget was getting errors on all machines. Downloads over a few seconds were throwing "SSL3_GET_RECORD:decryption failed or bad record mac". Googling that showed that this is a known (as of 2014 anyway) bug in Virtualbox when the VM's network type is set to Bridged. The solution is to set the network type in the VM to NAT.

Resources