Если у вас возникли трудности при установке docker на CentOS 8 прочитайте данную статью.
Появилась необходимость собрать образ с установкой зависимостей для python. Зависимости описаны в файле requirements.txt и должны подтягиваться из сети. Однако, при сборке образа получил ошибку следующего вида:
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd0844380f0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)'
Данная ошибка говорит о том, что docker не может разрешить доменное имя для установки соединения с удаленным сервером. Выполнив проверку в busybox (если образ отсутствует в вашем локальном репоизтории, docker автоматически скачает его) видим, что днс действительно не работает:
# docker run busybox nslookup google.com
;; connection timed out; no servers could be reached
Docker проблема с DNS – исправление ошибки
Чтобы в docker проблема с dns больше не возникала, необходимо указать днс-сервер в настройках самого докера. Для этого откроем конфигурационный файл docker:
# nano /etc/docker/daemon.json
Если файл ещё не существует, то редактор автоматически создаст его.
Теперь укажем днс-сервер, например от google:
{
"dns": ["8.8.8.8"]
}
И перезагрузим docker:
# systemctl restart docker
Проверим и убедимся, что все работает:
# docker run busybox nslookup google.com
Server: 8.8.8.8
Address: 8.8.8.8:53
Non-authoritative answer:
Name: google.com
Address: 64.233.163.113
Name: google.com
Address: 64.233.163.101
Name: google.com
Address: 64.233.163.102
Name: google.com
Address: 64.233.163.139
Name: google.com
Address: 64.233.163.100
Name: google.com
Address: 64.233.163.138