Can't get Docker image after windows installation - docker

I just installed docker on my windows 10 server,
Installation went fine but I can't seem to get images from central docker repo.
those are my specs:
c:\>docker version
Client:
Version: 1.13.0
API version: 1.25
Go version: go1.7.3
Git commit: 49bf474
Built: Wed Jan 18 16:20:26 2017
OS/Arch: windows/amd64
Server:
Version: 1.13.0
API version: 1.25 (minimum version 1.12)
Go version: go1.7.3
Git commit: 49bf474
Built: Wed Jan 18 16:20:26 2017
OS/Arch: linux/amd64
Experimental: true
This is my test command:
c:\>docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: remote error: tls: access denied.
See 'docker run --help'.
This is what I get when running curl on that repo:
c:\>curl -k https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}
I guess that there is something to do with my company DNS/Network,
did anyone encounter this issue on windows?

You need to set your proxy env variables.
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://username:password#proxy:port/", [EnvironmentVariableTarget]::Machine)
Restart-Service docker
Check this for reference: https://learn.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon
And more common:
https://docs.docker.com/engine/admin/systemd/#http-proxy

As I replied to #Falco Alexander I got some PowerShell errors, But The proxy was already set in my env. variables.
What finally did the trick was to set the proxy inside the docker GUI:
And then restart the service.

Related

Docker cannot access any Internet URL during build

I have the following Dockerfile:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
SHELL ["powershell", "-Command"]
RUN Invoke-WebRequest -UseBasicParsing http://www.google.com
On my Windows 10 machine, I run docker build . and get the following:
Basically, Docker is unable to access any Internet URL I try. I can run the same Dockerfile on my Windows Server 2019 Core machine and everything works fine. I'm running Docker version 18.09.2 and haven't updated it recently. This was working a few days ago, so it's a new issue. I've tried restarting the Docker engine and also rebooting. I've also tried a docker system prune. Any ideas what broke this? I'd rather not reinstall Docker if possible.
Docker Info:
Client: Docker Engine - Community
Version: 18.09.2
API version: 1.39
Go version: go1.10.8
Git commit: 6247962
Built: Sun Feb 10 04:12:31 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.2
API version: 1.39 (minimum version 1.24)
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:28:48 2019
OS/Arch: windows/amd64
Experimental: false
Update: Seems to be DNS related. I can ping things.
This is a known issue with ltsc2019 images (https://github.com/Azure/AKS/issues/1029). Put following at the start of your dockerfile or before entrypoint
Set-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter).IfIndex -ServerAddresses ('8.8.8.8')

EOF error while pulling images from docker

I am getting following error for
docker pull openjdk
Using default tag: latest
Pulling repository docker.io/library/openjdk
Error while pulling image: Get https://index.docker.io/v1/repositories/library/openjdk/images: EOF
I have set HTTP_PROXY and HTTPS_PROXY in /etc/systemd/system/docker.service.d/http-proxy.conf and /etc/systemd/system/docker.service.d/https-proxy.conf respectively.
Still I am not able to pull any images from docker hub.
Following is the docker version output
Client:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:20:01 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:20:01 2017
OS/Arch: linux/amd64
Here is my setting:
etc/systemd/system/docker.service.d
more http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://user:password#proxy.mycompany.com:8080/" "HTTPS_PROXY=http://user:password#proxy.mycompany.com:8080/" "NO_PROXY=localhost,127.0.0.1,.mycompany.com"
Note that HTTP_PROXY like HTTPS_PROXY both are using an http URL for the proxy. And make sure (with NO_PROXY) that any internal URL does not use the proxy.

#IBMCloudPrivate X509:certificate signed by unknow authority

I still have this issue. I have docker version 17.12.0-ce-mac49 (21995). I am running IBM Cloud Private on 4 VMs with docker version on Ubuntu 16. When I run docker version on my master node I get the following:
Client:
Version: 17.12.0-ce
API version: 1.35
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:11:19 2017
OS/Arch: linux/amd64
Server:
Engine:
Version: 17.12.0-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:09:53 2017
OS/Arch: linux/amd64
Experimental: false
On my mac if I run the command:
docker login mycluster.icp:8500
I login with my user id and password and get the following response:
Error response from daemon: Get https://mycluster.icp:8500/v2/: x509: certificate signed by unknown authority
I am trying to load a docker image into IBM Cloud Private and I get the same error. Any help would be greatly appreciated.
You need to copy the ICP registry certificate to you host that you want to push image. You can refer below ICP documentation for details.
https://www.ibm.com/support/knowledgecenter/en/SSBS6K_2.1.0/manage_images/configuring_docker_cli.html

docker private registry change from v1 to v2 while pulling an image

There is a docker is registry v2.
An image is pushed to docker private registry. Able to see it using curl command:
$ curl -s -X GET http://<registry>:<port>/v2/<image>/tags/list
{"name":"<image>","tags":["latest"]}
However, not able to pull the image from other machines. It appears that it is trying to pull from v1 instead of v2
Pulling the above image on a windows 10 machine.
docker pull <registry>:<port>/<image>:latest
Getting the following error:
Pulling repository <registry>:<port>/<image>
Network timed out while trying to connect to
http://<registry>:<port>/v1/repositories/<image>/images.
You may want to check your internet connection or if you are behind a proxy.
Not using any proxy settings.
Here is version details
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Tue Mar 28 00:40:02 2017
OS/Arch: windows/amd64
Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.12)
Go version: go1.7.5
Git commit: c6d412e
Built: Fri Mar 24 00:00:50 2017
OS/Arch: linux/amd64
Experimental: true
Could not found any docker settings for changing from v1 to v2.
How do I make it to pull from v2 / resolve the above error?
EDIT: log shows
ICMP Destination Unreachable: Destination port unreachable

Docker Compose (docker-compose) couldn't connect to docker daemon on Windows Server 2016 TP5

I am trying to get docker-compose to work on Windows Server 2016 TP5. I have installed Docker Desktop for Windows (not Docker Toolbox) as a service, which works perfectly. I have downloaded the latest docker-compose for windows from https://dl.bintray.com/docker-compose/master/ and put it in the same path as Docker (after unblocking the downloaded file, and renaming it to docker-compose.exe.
When I run the docker-compose up (in Powershell as an Administrator), I get the following error:
ERROR: Couldn't connect to Docker daemon. You might need to install
Docker:
https://docs.docker.com/engine/installation/
Here are the docker and docker-compose information on my machine:
Docker:
Client:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 17:52:38 2016
OS/Arch: windows/amd64
Server:
Version: 1.12.1
API version: 1.24
Go version: go1.6.3
Git commit: 23cf638
Built: Thu Aug 18 17:52:38 2016
OS/Arch: windows/amd64
Docker Compose:
docker-compose version 1.9.0dev, build f65f89a
You might want to try to set your DOCKER_HOST:
$ENV:DOCKER_HOST="npipe://\\.\pipe\docker_engine"
Alternatively, when registering the engine, you can make it listen on TCP too:
dockerd.exe -H npipe:////./pipe/docker_engine -H localhost:2375 --register-service
There are more details on this Compose issue

Resources