Используйте прокси socks5 с хоста для сборки docker - PullRequest
0 голосов
/ 04 мая 2020

Чтобы создать определенный образ, мне нужно создать туннель и заставить docker использовать этот туннель в качестве прокси socks5 (чтобы использовать прокси и для DNS).

Так что теперь у меня есть несколько проблем :

  1. Как заставить docker использовать прокси на хосте?
  2. Как заставить docker использовать прокси для получения базового образа?
  3. Как заставить docker использовать прокси для инструкции RUN?
  4. Как заставить docker использовать прокси для инструкции ADD?

1 Ответ

0 голосов
/ 04 мая 2020

Так как я провел весь день, исследуя это, вот ответы:

  1. Использование localhost: порт не работает. До тех пор, пока эта проблема не будет решена, вам необходимо использовать IP-адрес вашего сетевого интерфейса docker0 (172.17.0.1 в моем случае).
  2. Этот ответ также относится и к вопросу 3. Просто поместите этот контент (измените IP и порт, если необходимо) в ~/.docker/config.json (обратите внимание, что протокол socks5h)
    {
        "proxies":
        {
            "default":
            {
                "httpProxy": "socks5h://172.17.0.1:3128",
                "httpsProxy": "socks5h://172.17.0.1:3128",
                "noProxy": ""
            }
        }
    }
Не знаю почему, но для инструкции ADD прежние настройки не применяются (имена не разрешаются через прокси). Нам нужно поместить это содержимое в /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=socks5://172.17.0.1:3128/"

затем

sudo systemctl daemon-reload
sudo systemctl restart docker
...