У меня на сервере Ubuntu 16.4 работает демон docker

Детали моего сервера:

Модули LSB не доступны. Идентификатор распространителя: Ubuntu Описание: Ubuntu 17.04 Релиз: 17.04 Кодовое имя: zesty

Я получаю следующую ошибку:

aa@aaa-VirtualBox:/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, потому что я нахожусь за прокси / брандмауэром корпорации

Любые подсказки, как я могу решить эту проблему?

16
Tal Avissar 4 Сен 2017 в 14:35

4 ответа

Лучший ответ

Вам необходимо установить прокси для демона Docker, также используя переменную окружения. Docker run также выполняет docker pull, поскольку образ не существует. В вашем случае прокси применяется только к команде docker run, которая делегирует демону 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 run, и она должна работать

20
Tarun Lalwani 4 Сен 2017 в 12:59

Вещи, которые вы можете попробовать:

А) Добавить сервер имен 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:password@proxy-host:proxy-port'
export https_proxy='https://username:password@proxy-host: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 была единственной вещью, которая работала.

9
Katie 3 Апр 2019 в 20:53

Я решаю ошибку, изменяя 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
Jonathan Mendoza 23 Сен 2019 в 00:03

Настройте Docker для запуска при загрузке

sudo systemctl enable docker
0
Annika 28 Ноя 2019 в 06:29