Pull and run container.
Docker return error with message:
(HTTP code 500) server error - {"message":"Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)"}
at pull image.
Platform: Win10 x64
Docker version 17.06.0-ce, build 02c1d87
I don't use proxies and VPN. Speed of internet connection is ~90Mb/s.
I reproduce this issue on creation container with "mongo". Percent of reproduce this issue is ~95%, sometimes everything goes well.
Please make sure that you're on a stable connection and use a solid DNS such as Google DNS.
Go to Docker settings > network > DNS server . change from automaic to fixed ( default is 8.8.8.8 )
I had a similar issue trying to login to my own docker repo.
Here is how i've managed to resolve it:
https://stackoverflow.com/questions/46822391/docker-toolbox-tutorial-client-timeout-exceeded-while-awaiting-headers/48064026#48064026
My problem was missing proxy config:
nano /etc/systemd/system/kitematic.service.d/proxy.conf
[Service]
Environment=http_proxy=http://host:port
systemctl restart snapd
Go to Docker settings > network > DNS server . change from automaic to fixed ( default is 8.8.8.8 )
This is god damn works !!
I had this exact issue with the "jenkins/jenkins:lts" container. I'm running...
docker pull jenkins/jenkins:lts
I get the following error:

Running the 10.0.17763.0 build of Windows 10 (64-bit).
I resolved by restarting the Docker service.

Go to Docker settings > network > DNS server . change from automaic to fixed ( default is 8.8.8.8 )
Works !
Go to Docker settings > network > DNS server . change from automaic to fixed ( default is 8.8.8.8 )
Works !
I also confirm this is the solution.
Works
Go to Docker settings > network > DNS server . change from automaic to fixed ( default is 8.8.8.8 )
Thanks for the solution. I was stuck for half a day on this. It works.
Does anyone know how to do this now? I tried going to "Preferences" under Docker, but I can't find anything about network or DNS server so I don't know how to change the DNS server settings.
I am using Docker Desktop, Docker version 18.09.2 on MacOS Mojave version 10.14.5
Does anyone know how to do this now? I tried going to "Preferences" under Docker, but I can't find anything about network or DNS server so I don't know how to change the DNS server settings.
I am using Docker Desktop, Docker version 18.09.2 on MacOS Mojave version 10.14.5
i had to go preferences to proxies > manual configuration proxy > and set web server (http) to 8.8.8.8
Installing Docker update 2.1.0.1 fix the problem for me.
i'm resolved this problem with setting proxy variables correct, oc or kubectl utilize proxy variables for connect to api even on localhost.
Faced similar issue within corporate network while trying to access internal registry from Windows host. Resolved it by removing the Proxy server configuration.

I had set proxy in Web Server section due to which only hub.docker.com was only accessible. If necessary to access registry with Proxy then add it.
Most helpful comment
Go to Docker settings > network > DNS server . change from automaic to fixed ( default is 8.8.8.8 )