← Back to Blog

إعداد البروكسي داخل حاويات Docker

أحد أكبر التحديات في بيئات التطوير المؤسسية (Enterprise) هو تشغيل Docker خلف Corporate Proxy. إذا لم تقم بالإعداد الصحيح، ستفشل أوامر docker pull ولن تتمكن الحاويات من تحديث الحزم.

إعداد البروكسي لخدمة Docker (Daemon)

لكي يتمكن Docker نفسه من سحب الصور (Images)، يجب إنشاء ملف إعداد للخدمة.
مسار الملف (Linux): /etc/systemd/system/docker.service.d/http-proxy.conf


[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.local"
                    

بعد ذلك، أعد تحميل الخدمة: systemctl daemon-reload && systemctl restart docker.

إعداد البروكسي داخل الحاويات (Containers)

لكي تستطيع التطبيقات داخل الحاوية الوصول للإنترنت (مثلاً apt-get update)، يمكنك تمرير المتغيرات أثناء التشغيل أو إعدادها في ~/.docker/config.json لتكون افتراضية.

الطريقة اليدوية (Docker Run)


docker run -e HTTP_PROXY=http://proxy.example.com:8080            -e HTTPS_PROXY=http://proxy.example.com:8080            ubuntu apt-get update
                    

الطريقة الدائمة (User Config)

قم بتعديل ~/.docker/config.json:


{
 "proxies": {
   "default": {
     "httpProxy": "http://proxy.example.com:8080",
     "httpsProxy": "http://proxy.example.com:8080",
     "noProxy": "localhost,127.0.0.1"
   }
 }
}