Что такое ошибка "lookup registry-1.docker.io: no such host"?
Ошибка Docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host
возникает, когда Docker не может разрешить DNS имя registry.
Причины возникновения
- Проблемы с DNS сервером
- Отсутствие интернет соединения
- Блокировка firewall
- Неправильная конфигурация сети
- Проблемы с Docker daemon
Как отладить ошибку
- Проверь интернет соединение -
ping google.com
- Проверь DNS -
nslookup registry-1.docker.io
- Проверь firewall -
iptables -L
- Проверь конфигурацию сети -
ip route
Как исправить ошибку
1. Проверь DNS настройки
2. Настрой Docker DNS
3. Перезапусти Docker daemon
4. Проверь firewall настройки
5. Используй альтернативные registry
6. Проверь прокси настройки
1# Настрой прокси для Docker
2export HTTP_PROXY="http://proxy.example.com:8080"
3export HTTPS_PROXY="http://proxy.example.com:8080"
4export NO_PROXY="localhost,127.0.0.1"
5
6# Или в daemon.json
7{
8 "proxies": {
9 "http-proxy": "http://proxy.example.com:8080",
10 "https-proxy": "http://proxy.example.com:8080"
11 }
12}
Как мониторить подобные ошибки
- Мониторь доступность DNS серверов
- Проверяй интернет соединение
- Настрой алерты на сетевые ошибки
- Логируй все попытки доступа к registry
FAQ
В: Что делать, если DNS не работает?
О: Используй публичные DNS серверы (8.8.8.8, 8.8.4.4) или настрой локальный DNS.
В: Как настроить Docker за прокси?
О: Настрой переменные окружения HTTP_PROXY/HTTPS_PROXY или конфигурацию в daemon.json.
В: Что делать, если registry недоступен?
О: Используй registry mirrors или локальный registry для критичных образов.
Лучшие практики
- Используй надежные DNS серверы
- Настрой мониторинг сети
- Используй registry mirrors
- Документируй сетевую конфигурацию
- Имей план B для критичных образов