Докер не может получить доступ к интрасети, которую хост может

Я за корпоративным прокси. я имею HTTP_PROXY, HTTPS_PROXY, а также NO_PROXY установить на изображении. Когда я подключен к сети, у меня есть доступ к частному npm реестр, который находится в этой интрасети. Мой образ докера не может получить доступ к этому реестру.

На хост-компьютере Mac я могу запустить:

curl https://<registry>/nodejs/content/groups/npm/lodash

И я получаю JSON за пакет.

На образе докера я запускаю ту же команду и получаю это:

curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

Когда я npm install с установленным реестром он также возвращает ту же проблему.

Почему Docker не может получить доступ к той же конечной точке, что и мой хост-компьютер? Как я могу включить это?

2 ответа

Попробуйте использовать сеть хоста. Если вы можете получить доступ к этому URL из вашего локального, то он должен работать. Вам просто нужно добавить аргумент --network host в команду build/run.

Пример:

$ docker build <all the other args> --network host .
$ docker run <all the other args> --network host .

Docker создает мостовую сеть по умолчанию, но вы можете заставить его использовать вашу локальную сеть с параметром --network host arg.

Я столкнулся с аналогичной проблемой, когда там была сеть докеров, созданная каким-то файлом compose.

docker network ls

Я удалил болтающуюся и сохранил доступ к внутренней сети

Немного поздно, но это может кого-то. У меня была та же проблема, и мое решение было настроить демон Docker для использования моей интрасети DNS

Изменить daemon.json файл

sudo vim /etc/docker/daemon.json

Файл должен выглядеть примерно так

{
  "dns": ["ip-here", "ip-here"]
}

Restart de daemon

sudo service docker restart
Другие вопросы по тегам