Maxx
May 2, 2022, 1:28am
1
أحاول سحب الصور من خلال وكيل الجوارب 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 وبعد إعدادها:
الطريقة 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الآن هو وتشغيلها:
@ جواب نيكيلوي أعلاه يفتقد نقطة حاسمة.
يتم أخذ الوكيل المستخدم لسحب الصورة من بيئة 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المزيد معلومات في المستندات الرسمية.
عامل الميناء-يؤلف لا سحب الصور. ويحكي عامل الميناء لسحب الصور.