Docker network timeout when using 'docker run hello-world'

Expected behavior

Attempting to run the command ‘docker run hello-world’ when image does not exist locally should download image from docker.io and run the container.

Actual behavior

Command results in the following output:

Unable to find image ‘hello-world:latest’ locally
Pulling repository docker.io/library/hello-world
docker: Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/hello-world/images. You may want to check your internet connection or if you are behind a proxy…
See ‘docker run --help’.

Information

  • Log output (I’m pretty sure this is the relevant part):
    [18:17:19.160][ApiProxy ][Info ] Search for dns server…
    [18:17:19.165][ApiProxy ][Info ] 1.1.168.192.in-addr.arpa
    [18:17:19.170][ApiProxy ][Info ] primary name server = localhost
    [18:17:19.175][ApiProxy ][Info ] responsible mail addr = nobody.invalid
    [18:17:19.180][ApiProxy ][Info ] serial = 1
    [18:17:19.184][ApiProxy ][Info ] refresh = 600 (10 mins)
    [18:17:19.189][ApiProxy ][Info ] retry = 1200 (20 mins)
    [18:17:19.195][ApiProxy ][Info ] expire = 604800 (7 days)
    [18:17:19.201][ApiProxy ][Info ] default TTL = 10800 (3 hours)
    [18:17:19.207][ApiProxy ][Info ] Server: UnKnown
    [18:17:19.211][ApiProxy ][Info ] Address: 192.168.1.1
    [18:17:19.215][ApiProxy ][Info ]
    [18:17:19.221][ApiProxy ][Info ]
    [18:17:19.225][ApiProxy ][Info ] Fetch error: Unable to find name server

  • Docker Version Info:

Client:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 21:15:28 2016
OS/Arch: windows/amd64

Server:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built: Thu Jul 28 21:15:28 2016
OS/Arch: linux/amd64

  • Windows 10 Anniversary Edition (build 14393)

Steps to reproduce the behavior

  1. Install Docker for Windows
  2. Run command ‘docker run hello-world’

Please note that I’ve looked at similar threads on the forums, and have tried every solution suggested, to no avail. I have tried:

  • Setting the Settings > Network > DNS Server setting from Automatic to Fixed, pointing to 8.8.8.8.
  • Disabling IPv6 on the vEthernet (DockerNAT) virtual Ethernet adapter (note that if I reset docker, this gets reset as well)
  • Setting the IPv4 DNS on the vEthernet (DockerNAT) virtual Ethernet adapter to fixed addresses of 8.8.8.8 and 8.8.4.4.
  • etc.

I was briefly able to get connectivity at one point, but not clear on what worked, and it only worked long enough for me to get some containers set up via a yaml file. Unfortunately, even after that, I could not communicate from my host network to the containers, so I tried uninstalling and reinstalling, and I’m back to square one.

Here’s the various dialogs for the adapter (sorry for the combo image, but the forums won’t let me post more than one image as a newbie).

Note the ‘No network access’ in the Status dialog. I have no idea if this is normal or not.

All of the images are how things were configured by the Docker for Windows install, with no manual changes made.

Would be really great if someone with a working networking setup could take a look and see what’s different between my settings and yours.

Thanks!

3 Likes

I am seeing the exact same behavior and have also tried all the referenced suggestions with zero success.

Most optimally you can’t ping 10.0.75.1 either from command prompt either? Try setting the hypervisor (vSwitch) IPV4 address to 10.0.75.10 (say) and setting both default gateway and DNS as 10.0.75.1 and then see if the ping 10.0.75.1 goes through.

Ping to 10.0.75.1 from the host command prompt works fine.

But I am still seeing the timeout behavior nonetheless.

Intuitively, it seems to me that the networking should work correctly after installing Docker for Windows, given that there is nothing in the installation instructions that requires additional setup.

1 Like

I discovered that the network access issues I was experiencing were due to the fact that my company has some security software installed on our machines that interfere with some network traffic; e.g. netskope. Once I disabled that component, everything worked just fine with Docker for Windows.

Following up on this, I was able to work around the issue I’m experiencing by using my phone’s Wi-Fi hotspot. If I connect the machine running Docker to the hotspot, I can successfully pull images.

For reasons that should be obvious, this is not a good long-term solution. So clearly, my router (perhaps NAT?) is playing a role here. Router is a Netgear R6400 (AC-1750 with stock firmware). Where would I start in trying to troubleshoot? Is there a specific port that needs to be forwarded in order for docker to be able to pull images when traversing the NAT?

Another wrinkle suggested by a colleague…he ran into the same issue of not being able to pull images from docker hub, and tracked it down to the fact that his local network gateway IP was not resolving to a hostname. So he added a PTR record (reverse DNS) on his DNS server, and was able to connect and pull images just fine.

I was able to verify that my local network router also does not provide a hostname for the gateway address, nor does it appear to be capable of doing so. My phone’s hotspot, on the other hand, does resolve the gateway address to a valid hostname. So it may be that this is why switching to the hotspot allows me to connect to docker hub and pull images.

So the question now becomes, since I can’t add a PTR record to the DNS server(s), is there another way to work around this issue?

I am getting the same issue and not found any solution for the same.
Please check below error.

PS C:\WINDOWS\system32> docker run hello-world
Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/a7/a7a0c752f970a419aba39261958e13ad381a8192d424cb7815bcec26
8c2898af/data?verify=1531296053-JoREzCmzCslwZ6iF4m37%2FkrRA%2F4%3D: dial tcp 104.18.122.25:443: i/o timeout.
See ‘C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help’.