DNS سرویس Docker و دور زدن پروکسی با no_proxy
برای یک سرویس داخلی موردنظر، وقتی پروکسی HTTP خارجی نمیتواند آن شبکه را تفکیک یا به آن دسترسی پیدا کند، از no_proxy استفاده کنید.
پروکسی HTTP خارجی لازم نیست نام سرویس api در Docker را بداند. برای http://api:8080/ پروکسی اتصال بعدی را باز میکند، بنابراین جستوجوی موفق درون کانتینر برنامه، دید DNS پروکسی را اثبات نمیکند.
برای دسترسی مستقیم موردنظر، استثنا را به محیط همان کانتینر اضافه کنید:
environment:
http_proxy: http://proxy.example:8080
https_proxy: http://proxy.example:8080
no_proxy: apiدرخواستهای مستقیم به api از مسیر کانتینر و تفکیککننده داخلی آن استفاده میکنند. دو کانتینر همچنان به شبکه مشترک تعریفشده توسط کاربر نیاز دارند و سرویس باید روی 8080 گوش دهد. درخواستهای خارجی واجد شرایط پروکسی را حفظ میکنند. اگر آن مقاصد عمومی بتوانند از واسطه عمومی استفاده کنند، فهرست پروکسی HTTP نامزدهایی برای URLهای پروکسی بدون حساب فراهم میکند؛ api را در استثناهای مستقیم نگه دارید.
اگر کانتینرهای بازسازیشده متغیرهای غیرمنتظره را حفظ میکنند، بخش config.json proxies کلاینت Docker را بررسی کنید که میتواند مقادیر محیطی را تزریق کند. ورودی موردنظر را تغییر دهید و کانتینرهای تحت تأثیر را از طریق جریان عادی بازسازی کنید و پیکربندی نامرتبط را حفظ کنید.