Назад | Перейти на главную страницу

Как я могу сделать изображения pull для docker-compose с помощью прокси socks5?

Пытаюсь вытащить изображения через прокси socks5. Я запустил прокси socks5 на порт 8888 как это:

ssh -NC -D 8888 parham@***.***.**

Однако когда я бегу docker-compose таким образом очевидно, что он не использует переменную среды:

$ ALL_PROXY=socks5://127.0.0.1:8888 docker-compose up

Как я могу заставить Docker извлекать образы через этот прокси?

Похоже, эта функция была в последнее время добавлен к docker, особенно в версии 1.11.0. Хотя документации по его использованию недостаточно, установка ALL_PROXY переменная окружения должна работать, согласно этот комментарий.

$ export ALL_PROXY=socks5://localhost:port 
$ docker pull image

Я не уверен насчет docker-compose в данный момент. Если ваша основная цель - ускорить процесс загрузки с помощью socks5, вы можете достичь этой цели, вручную вытягивая изображения с помощью docker pull прежде чем, наконец, запустить docker-compose up.

В ответе @ nikhilweee выше отсутствует важный момент.

Прокси-сервер, используемый для извлечения изображений, взят из среды dockerd. В настоящее время нет возможности изменить его без перезапуска dockerd.

Я подал Моби, выпуск # 37335 об этом, потому что я хотел использовать конкретный прокси для одной команды pull, но не в целом.

В Docker 17.07 и выше вы также можете использовать json файл для настройки прокси:

       $ vim ~/.docker/config.json

          {
            "proxies":
              {
                "default":
                 {
                  "httpProxy": "http://127.0.0.1:8118",
                  "httpsProxy": "http://127.0.0.1:8118"
                  }
              }
          }

        $  docker pull ubuntu:18.04
        $  docker-compose build

Больше информация в официальных документах.

И помимо использования Socks, Вы можете переслать Socks к HTTP используя privoxy:

    $ sudo apt install -y privoxy
    $ sudo vim /etc/privoxy/config
    
              forward-socks5 / 127.0.0.1:9090  .
              forward-socks4a / 127.0.0.1:9090 .
              forward-socks5t             /     127.0.0.1:9090 .
              forward         192.168.*.*/     .
              forward            10.*.*.*/     .
              forward           127.*.*.*/     .
              forward           localhost/     .
    
    $ sudo service privoxy restart

Больше информация в официальных документах.