Bagaimana Saya bisa membuat gambar tarik docker-compose menggunakan proxy socks5?

Saya mencoba menarik gambar melalui proxy socks5. Saya sudah memulai proxy socks5 di port 8888 seperti ini:

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

Namun, ketika saya menjalankan docker-compose seperti ini, jelas bahwa itu tidak menggunakan variabel lingkungan:

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

Bagaimana Saya bisa membuat Docker menarik gambar melalui proxy ini?

Sepertinya fitur ini telah baru-baru ini ditambahkan ke docker terutama dalam versi 1.11.0. Meskipun tidak ada cukup dokumentasi tentang penggunaannya, pengaturan ALL_PROXY variabel lingkungan harus bekerja, sesuai dengan komentar ini.

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

Saya Tidak yakin tentang docker-compose saat ini.Jika tujuan utama Anda adalah mempercepat proses pengunduhan menggunakan socks5, Anda mungkin dapat mencapai tujuan tersebut dengan menarik gambar secara manual menggunakan docker pull sebelum akhirnya berjalan docker-compose up.

Metode 1

Kesalahan:

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

kemudian Pengaturan HTTP_PROXY dan HTTPS_PROXY dengan cara ini:

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

hasil:

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

Tembakan sebelum HTTP_PROXY dan setelah mengaturnya:

enter image description here

Metode 2

Jika metode 1 tidak berhasil (sederhana) Anda dapat pergi dengan yang ini:

pertama

Temukan lokasi systemd untuk konfigurasi:

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

yang di sini untuk saya di Debian 9 adalah /lib/systemd/system/docker.service dan Direktori adalah /lib/systemd/system/
Jadi cd into /lib/systemd/system/.

kedua

mkdir untuk docker.service.d atau:

mkdir docker.service.d && cd !$

ketiga

Di docker.service.d direktori membuat .conf berkas seperti: http-proxy.conf

forth

Tambahkan ini di http-proxy.conf berkas:

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

Perhatikan bahwa localhost:9040 adalah milikku, perbarui jika Anda memiliki IP atau PORT yang berbeda

keenam

Karena kita memperbarui konfigurasi run:

systemctl daemon-reload

dan kemudian restart layanan docker

systemctl restart docker

Sekarang sudah aktif dan berjalan:

enter image description here

jawaban @ nikhilweee di atas tidak memiliki poin penting.

Proxy yang digunakan untuk image-pull diambil dari lingkungan dockerd. Saat ini tidak ada cara untuk mengubahnya tanpa memulai ulang dockerd.

Saya telah mengajukan masalah moby # 37335 tentang itu, karena saya ingin menggunakan proxy khusus untuk satu perintah tarik, tetapi tidak secara umum.

Di Docker 17.07 dan lebih tinggi, Anda juga dapat menggunakan json berkas untuk konfigurasi 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

Lebih info dalam dokumen resmi.

Dan selain menggunakan Socks, Anda dapat meneruskan Socks untuk HTTP dengan menggunakan 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

Lebih info dalam dokumen resmi.

docker-compose tidak menarik gambar. Ini memberitahu Docker untuk menarik gambar.