пятница, 12 мая 2023 г.

Docker - Error response from daemon

  Есть локальная сеть. Для доступа в инет работает прокси-сервер. На одном из внутренних серверов поставил docker. При первой же попытке что-то получить докером из инета появилась ошибка

docker search debian
Error response from daemon: Get "https://index.docker.io/v1/search?q=debian&n=25": dial tcp: lookup index.docker.io on 192.168.10.10:53: server misbehaving

Тут 192.168.10.10 это внутренний DNS сервер сети.

 Переменных среды HTTP_PROXY там нет. Единственное упоминание нашего прокси в системе - в APT настроено получение программ через прокси. В файле /etc/apt/apt.conf есть

Acquire::http::Proxy "http://proxy.domain.ua:80/";

Но это не должно влиять на нашу проблему.

Прежде чем ставить переменные среды, полез в документацию.

  На официальном сайте докера помогла статья Configure the daemon with systemd. Из- приведенных там способов выбрал второй

  1. Править файл /etc/docker/daemon.json
  2. Добавить в настройки юнита systemd

  В папке /etc/systemd/system надо создать папку docker.service.d и в ней файл http-proxy.conf такого вида

cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.domain.ua:80"
Environment="HTTPS_PROXY=http://proxy.domain.ua:80"
Environment="NO_PROXY=localhost,127.0.0.1,.domain.ua"

  Где "proxy.domain.ua" єто наш прокси, а 80 - порт прокси И в командной строке сделать

systemctl daemon-reload

systemctl restart docker

  Это помогло.

  По сути вопроса это все, но хочу еще описать другую ошибку с которой я столкнулся в процессе решения.

Когда я первый раз создал файл http-proxy.conf, то докер начал ошибаться по другому

docker search debian
Error response from daemon: Get "https://index.docker.io/v1/search?q=debian&n=25": proxyconnect tcp: tls: first record does not look like a TLS handshake

Чего то ему не понравилось рукопожатие TLS

Проблема оказалось в неправильном значении переменной HTTPS_PROXY. Я в ней написал префикс "https://" как показано ниже, а надо просто "http://". Не знаю во всех ли случаях так надо делать

Environment="HTTPS_PROXY=https://proxy.domain.ua:80"

Дякую за увагу.


Комментариев нет:

Отправить комментарий