Como posso fazer imagens pull docker-compose usando um proxy socks5?

Estou tentando extrair imagens por meio de um proxy socks5. Eu comecei o proxy socks5 na porta 8888 comer:

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

No entanto, quando Eu corro docker-compose assim, é evidente que não está usando a variável de ambiente:

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

Como posso fazer Docker puxar imagens através deste proxy?

Parece que esse recurso foi recentemente adicionar docker, particularmente na versão 1.11.0. Embora não haja documentação suficiente sobre seu uso, definir o ALL_PROXY a variável de ambiente deve funcionar, de acordo com este comentário.

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

Eu não tenho certeza sobre docker-compose no momento.Se o seu objetivo principal é acelerar o processo de download usando socks5, você pode ser capaz de atingir o objetivo puxando manualmente imagens usando docker pull antes de finalmente correr docker-compose up.

Método 1

Erro:

docker-compose up Pulling web (jitsi/web:stable-6433)...ERROR: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

em seguida, definir HTTP_PROXY e HTTPS_PROXY forma:

export HTTP_PROXY=socks5://localhost:9040/export HTTPS_PROXY=socks5://localhost:9040/

resultado:

docker-compose up Pulling web (jitsi/web:stable-6433)...stable-6433: Pulling from jitsi/webb380bbd43752: Downloading [===================>                               ]  10.36MB/27.14MB0312863d422f: Download complete503063a74a58: Downloading [============================>                      ]  7.998MB/14.15MB392a862abfe3: Download complete41a073b705ed: Download completea8f4844f6941: Download completef500f1f2f4ae: Downloading [============>                                      ]  11.69MB/47.56MB

Um tiro de antes HTTP_PROXY e depois de configurá-los:

enter image description here

Método 2

Se o método 1 não funcionou (simples) você pode ir com este:

primeiro

Encontre a localização do systemd para configuração:

systemctl status docker | grep docker.service\;   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

que aqui para o Meu no Debian 9 é /lib/systemd/system/docker.service e seu diretório é /lib/systemd/system/
Entao cd em /lib/systemd/system/.

segundo

mkdir para docker.service.d ou:

mkdir docker.service.d && cd !$

terceira

Em docker.service.d diretório criar um .conf arquivo como: HTTP-proxy.conf

diante

Adicione estes em HTTP-proxy.conf arquivo:

[Service]Environment="HTTP_PROXY=socks5://localhost:9040"Environment="HTTPS_PROXY=socks5://localhost:9040"

notar localhost:9040 é meu, atualize-o se você tiver um IP ou porta diferente

sexto

Porque atualizamos a execução da configuração:

systemctl daemon-reload

e, em seguida, reinicie o serviço docker

systemctl restart docker

Agora está instalado e funcionando:

enter image description here

a resposta de @ nikhilweee acima está faltando um ponto crucial .

O proxy usado para image-pull é retirado do ambiente de dockerd. Atualmente, não há como alterá-lo sem reiniciar dockerd.

Eu tenho arquivado problema moby #37335 sobre isso, porque eu queria usar um proxy específico para um único comando pull, mas não em geral.

No Docker 17.07 e superior, Você também pode usar json arquivo para configuração de proxy:

       $ 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

Mais informações em documentos oficiais.

E além de usar Socks, Você pode encaminhar Socks para HTTP usando 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

Mais informações em documentos oficiais.

docker-compose não puxa imagens. Ele diz ao Docker para puxar as imagens.