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

  1. Создайте системный каталог для службы 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
    
  2. Затем добавьте ниже контент с настройками прокси-сервера (смените его на "HTTPS" для https)

    [Service]
    Environment="HTTP_PROXY=http://<allowed_proxy_ipv4_address>:<proxy_port_num>/"
    [Service]
    
  3. sudo systemctl daemon-reload

  4. sudo systemctl restart docker
  5. Убедитесь, что конфигурация была загружена: 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