كيف يمكنني جعل عامل الميناء يؤلف سحب الصور باستخدام الجوارب 5 وكيل?

أحاول سحب الصور من خلال وكيل الجوارب 5. لقد بدأت وكيل الجوارب 5 على المنفذ 8888 مثل هذا:

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

ومع ذلك ، عندما أركض docker-compose مثل هذا ، من الواضح أنه لا يستخدم متغير البيئة:

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

كيف يمكنني جعل عامل الميناء سحب الصور من خلال هذا الوكيل?

يبدو أن هذه الميزة كانت مؤخرا أضيفت إلى docker، لا سيما في الإصدار 1.11.0. على الرغم من عدم وجود وثائق كافية حول استخدامه ، وضع ALL_PROXY يجب أن يعمل متغير البيئة ، وفقا ل هذا التعليق.

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

لست متأكدا من docker-compose في هذه اللحظة.إذا كان هدفك الأساسي هو تسريع عملية التنزيل باستخدام الجوارب5 ، فقد تتمكن من تحقيق الغرض عن طريق سحب الصور يدويا باستخدام docker pull قبل تشغيل أخيرا docker-compose up.

الطريقة 1

خطأ:

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

ثم الإعداد HTTP_PROXY و HTTPS_PROXY من هنا:

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

النتيجة:

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

لقطة من قبل HTTP_PROXY وبعد إعدادها:

enter image description here

الطريقة 2

إذا لم تنجح الطريقة 1 (طريقة بسيطة) ، يمكنك استخدام هذا واحد:

أولا

البحث عن موقع سيستيمد للتكوين:

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

الذي هنا لبلدي على دبيان 9 هو /lib/systemd/system/docker.service والدليل الخاص به هو /lib/systemd/system/
لذا cd إلى /lib/systemd/system/.

ثانيا

mkdir ل docker.service.d أو:

mkdir docker.service.d && cd !$

الثالث

في docker.service.d دليل إنشاء .conf ملف مثل: هتب-بروكسي.أسيوط

الرابع

أضف هذه في هتب-بروكسي.أسيوط الملف:

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

لاحظ أن localhost:9040 هو لي ، تحديثه إذا كان لديك إب أو منفذ مختلف

السادسة

لأننا نقوم بتحديث تشغيل التكوين:

systemctl daemon-reload

ثم أعد تشغيل خدمة عامل الميناء

systemctl restart docker

الآن هو وتشغيلها:

enter image description here

@ جواب نيكيلوي أعلاه يفتقد نقطة حاسمة.

يتم أخذ الوكيل المستخدم لسحب الصورة من بيئة dockerd. لا توجد حاليا طريقة لتغييره دون إعادة التشغيل dockerd.

لقد قدمت موبي العدد #37335 حول هذا الموضوع ، لأنني أردت استخدام وكيل معين لأمر سحب واحد ، ولكن ليس بشكل عام.

في عامل الميناء 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

المزيد معلومات في المستندات الرسمية.

عامل الميناء-يؤلف لا سحب الصور. ويحكي عامل الميناء لسحب الصور.