Docker: Failed to establish a new connection: [Errno 113] No route to host
Experienced a strange issue today while rebuilding one of my Python containers which was failing on pip install
.
The problem is strange because internet works fine on my host system (that also uses Google's 8.8.8.8). Seems to be a temporary issue, possibly because of a DNS change on part of the python module registry pythonhosted.org, but I can't be sure.
``` ---> fc2678812fdf Step 9/11 : RUN python -m pip install --no-cache-dir -r requirements.txt ---> Running in 50711357a3eb Collecting aiohttp (from -r requirements.txt (line 1)) Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError(, 'Connection to files.pythonhosted.org timed out. (connect timeout=15)')': /packages/09/7f/95e1f38eb778c76b1d5f008efc9f3d648dadd22275497a038ee0844dcd62/aiohttp-3.1.3-cp36-cp36m-manylinux1_x86_64.whl Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError(': Failed to establish a new connection: [Errno 113] No route to host',)': /packages/09/7f/95e1f38eb778c76b1d5f008efc9f3d648dadd22275497a038ee0844dcd62/aiohttp-3.1.3-cp36-cp36m-manylinux1_x86_64.whl ... Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/09/7f/95e1f38eb778c76b1d5f008efc9f3d648dadd22275497a038ee0844dcd62/aiohttp-3.1.3-cp36-cp36m-manylinux1_x86_64.whl (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 113] No route to host',)) ```Solution
Switching to another DNS service fixes the issue.
[sudo] vi /etc/docker/daemon.json
- Set the DNS resolvers to something new
"dns": ["1.0.0.1", "8.8.8.8", "8.8.4.4"]
I added1.0.0.1
which is Cloudflare's new DNS service. - Restart the docker daemon:
[sudo] systemctl restart docker
- Rebuild your container