Lookup registry-1.docker.io: нет такого хоста
У меня есть демон docker, запущенный на моем сервере Ubuntu 16.4
данные моего сервера:
Нет доступных модулей LSB. Идентификатор дистрибьютора: Ubuntu Описание: Ubuntu 17.04 Release: 17.04 Codename: zesty
Я получаю следующую ошибку:
[email protected]:/etc/default$ docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io: no such host.
See 'docker run --help'.
Я установил http_proxy, и https_proxy beacuse я за прокси-сервером/firewall
Любые подсказки, как я могу исправить эту проблему?
Ответы
Ответ 1
Вам необходимо установить прокси для демона Docker, также используя переменную среды. Запуск Docker также выполняет приведение докеров, так как изображение не существует. В вашем случае прокси применяется только к команде запуска docker, которая делегирует демона докеров, который работает без прокси.
Создайте файл с именем /etc/systemd/system/docker.service.d/10_docker_proxy.conf
с содержимым ниже
[Service]
Environment=HTTP_PROXY=http://1.1.1.1:111
Environment=HTTPS_PROXY=http://1.1.1.1:111
Обязательно обновите прокси-сервер в соответствии с тем, который у вас есть 1.1.1.1:111
- это просто пример
Затем выполните следующие команды для перезапуска docker
sudo systemctl daemon-reload
sudo systemctl restart docker
Теперь используйте команду запуска docker, и она должна работать
Ответ 2
Что вы можете попробовать:
а) Добавить сервер имен 8.8.8.8
Метод № 1
docker-machine ssh default
sudo vi /etc/resolv.conf
//change nameserver to 8.8.8.8
Затем перезапустите сервер, используя
service docker restart
Примечание. Если у вас не установлена докер-машина, вы можете выполнить инструкции здесь, чтобы установить ее. Он поставляется с Windows и Mac, но доступен для установки на Linux вручную.
Метод № 2
Отредактируйте /etc/docker/daemon.json или "предоставьте конфигурацию JSON на панели настроек" со следующей информацией:
{ "dns" : [ "8.8.8.8", "8.8.4.4" ]}
Затем перезапустите сервер, используя
service docker restart
б) Настройка прокси-сервера
Метод № 1
Измените конфигурацию прокси-сервера в соответствии с предложением Таруна Лалвани.
Отредактируйте /etc/default/docker
и добавьте:
export http_proxy='http://username:[email protected]:proxy-port'
export https_proxy='https://username:[email protected]:proxy-port'
Затем перезапустите сервер, используя
service docker restart
Метод № 2
Источник: https://github.com/moby/moby/issues/32270#issuecomment-340709035
Создайте системный каталог для службы Docker:
mkdir -p /etc/systemd/system/docker.service.d
# For HTTP Proxy:
vim /etc/systemd/system/docker.service.d/http-proxy.conf
# For HTTPS Proxy:
vim /etc/systemd/system/docker.service.d/https-proxy.conf
Затем добавьте ниже контент с настройками прокси-сервера (смените его на "HTTPS" для https)
[Service]
Environment="HTTP_PROXY=http://<allowed_proxy_ipv4_address>:<proxy_port_num>/"
[Service]
sudo systemctl daemon-reload
sudo systemctl restart docker
- Убедитесь, что конфигурация была загружена:
systemctl show --property=Environment docker
в) Переустановите Docker
К сожалению, последнее средство, может работать. Посетите эти страницы github для получения дополнительных предложений:
Для меня настройка прокси с использованием метода systemctl была единственной вещью, которая работала.
Ответ 3
Я решаю ошибку, изменяя DNS-сервер на 8.8.8.8 - Ubuntu 18.04.3 LTS
1- Откройте Системные настройки Ubuntu и перейдите в Сеть
![enter image description here]()
2- Нажмите кнопку настройки рядом с именем сети в списке, к которому вы подключены.
3- Откроется новое окно с большим количеством вкладок, одна из которых имеет метку "IPv4".
![enter image description here]()
4- После открытия вкладки "IPv4" вы найдете поле "DNS". Здесь вы можете написать DNS-сервер
![enter image description here]()
Если вы хотите использовать более одного DNS, вы можете ввести и разделить их запятой.
Ответ 4
Перейдите в Настройки Docker → Прокси → Ручная настройка прокси.
Установите данные прокси во входных данных и примените.
Перезагрузите докер. Это решит проблему.
![http://19.12.1.40:83]()