English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تفسير إعداد وسيط الشبكة في Docker

الخلفية

في بعض بيئات المختبر، لا يتم منح إذن للخادم للاتصال مباشرة بالإنترنت، ويجب استخدام وسيط الشبكة. نحن نستخدم عادةً إعداد وسيط الشبكة مباشرةً في ملفات الإعداد مثل /etc/environment و /etc/profile، وهذا يمكن أن يكون فعالًا للغالبية. ومع ذلك، لا يمكن استخدام أوامر docker هذه الوصايا.

على سبيل المثال، عند استخدام docker pull لتنزيل الصورة، قد يظهر الخطأ التالي:

 $ docker pull hello-world
تعذر العثور على الصورة 'hello-world:latest' محليًا
جذب مستودع docker.io/library/hello-world
docker: انتهت وقت الاستجابة للشبكة بينما كان يحاول الاتصال بـ https://index.docker.io/v1/repositories/library/hello-world/images. قد ترغب في التحقق من اتصالك بالإنترنت أو إذا كنت وراء واجهة استنساخ.
انظر إلى 'docker run --help'. 

ps: تم اختبار هذا المقال على Ubuntu 16.04.

الحل الأول:

توقف خدمة docker، قم ببدء daemon docker يدويًا لاستخدام منفذ 2375 لمراقبة جميع واجهات الشبكة.

 $ systemctl stop docker.service
$ nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock & 

الحل الثاني:

تعديل ملف الإعدادات، في Ubuntu هو /etc/default/docker، وفي CentOS هو /etc/sysconfig/docker. ولكن تعديل هذين الملفين لضبط daemon هو غير موصى به. لا يُوصى بهذه الطريقة.

 HTTP_PROXY="http://[proxy-addr]:[proxy-port]/"
HTTPS_PROXY="https://[proxy-addr]:[proxy-port]/"
export HTTP_PROXY HTTPS_PROXY 

الحل الثالث:

هذه الطريقة هي مستدامة، وستبقى سارية حتى بعد التعديل. هذه الطريقة تغطي ملف docker.service الافتراضي.

1. لإنشاء دليل systemd مدمج لتطبيق docker

 $ mkdir -p /etc/systemd/system/docker.service.d 

2. أنشئ ملف /etc/systemd/system/docker.service.d/http-proxy.conf، وأضف متغير بيئي HTTP_PROXY. حيث [proxy-addr] و [proxy-port] يجب تعديلهما إلى عنوان الوجه والمنفذ الفعلي للوكيل:}

 [Service]
Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/" 

3. إذا كانت هناك أي مستودعات Docker داخلية لا تحتاج إلى استخدام وكيل للوصول إليها، فإنه يجب إنشاء متغير بيئي NO_PROXY:

 [Service]
Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com" 

4. تحديث الإعدادات:

 $ systemctl daemon-reload 

5. إعادة تشغيل خدمة Docker:

 $ systemctl restart docker

هذا هو نهاية محتوى هذا المقال، نأمل أن يكون قد ساعدكم في التعلم، ونأمل أن تدعموا وتعطوا صوتًا لتعليمات呐喊.

البيان: محتوى هذا المقال تم جمعه من الإنترنت، وله حقوق الملكية الأصلية للمالك، تم جمعه من قبل المستخدمين على الإنترنت الذين قاموا بتحميله بأنفسهم، ولا يمتلك هذا الموقع حقوق الملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية متعلقة بذلك. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # ب @) لإبلاغنا، وقدم الدليل على الدليل، وسيتم حذف المحتوى المزعوم عن انتهاك حقوق النسخ فور التحقق منه.

أعجبك ذلك