Temporary failure in name resolution [Errno -3] with Docker

I'm following the docker tutorial and am on the part where I have to build the app using:

docker build -t friendlyhello .

It reaches up to step 4, where after a pause I get this error:

Step 4/7 : RUN pip install -r requirements.txt
 ---> Running in 7f4635a7510a
Collecting Flask (from -r requirements.txt (line 1))

Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after 
connection broken by
'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection 
object at 0x7fe3984d9b10>: Failed to establish a new connection: 
[Errno -3] Temporary failure in name resolution',)': /simple/flask/

I'm not quite sure what this error means and how I can go about solving it.

Thanks for your help!


I just did sudo service docker restart and it worked after. Definitely worth a shot before jumping in to modify your configurations.


I got the same problem with Ubuntu 16.04 and Docker version 17.09.0-ce. I don't think disabling dnsmasq is the right solution.

Here is how I solved it:

For Ubuntu

Edit /etc/default/docker and add your DNS server to the following line:

Example

DOCKER_OPTS="--dns 8.8.8.8 --dns 10.252.252.252"

Reference: Network calls fail during image build on corporate network


bkasap's answer changes a system's feature I would say is exaggerated. Further because there are options in docker to do that. The new way to do that is

$ sudo vi /etc/docker/daemon.json

and add following content

{
    "dns": ["8.8.8.8", "8.8.4.4"]
}

Don't forget to

sudo service docker restart