چرا docker pull تنظیمات پروکسی کانتینر را نادیده میگیرد؟
بخش Docker را که واقعاً ایمیج میگیرد تنظیم کنید، نه اینکه انتظار داشته باشید متغیرهای پروکسی کانتینر daemon را کنترل کنند.
اگر docker pull شکست خورد، Docker daemon یا Docker Desktop را تنظیم کنید. ایمیج پیش از آن دانلود میشود که کانتینر برنامه بتواند متغیرهای پروکسی خود را بخواند.
Docker Engine بومی
این بخش را در تنظیم پروکسی موجود daemon ادغام کنید، نقطه مستندات را عوض کنید و تنظیمات بیربط را نگه دارید. برای آزمایش دریافت ایمیج عمومی در جایی که پروکسی عمومی مجاز است، فهرست پروکسی HTTP گزینه میدهد:
{
"proxies": {
"http-proxy": "http://203.0.113.10:8080",
"https-proxy": "http://203.0.113.10:8080",
"no-proxy": "localhost,127.0.0.1,registry.example.internal"
}
}کلیدهای خطتیرهدار daemon با کلیدهای camelCase در ~/.docker/config.json کلاینت Docker فرق دارند. بخش پروکسی کلاینت برای کانتینرهای جدید و build متغیر محیطی میدهد؛ نه دانلودهای daemon را تنظیم میکند و نه محیط کانتینرهای موجود را.
راهاندازی مجدد daemon را طبق مستندات نصب انجام دهید و اثر آن را بر کارهای جاری برنامهریزی کنید. daemon میتواند متغیرهای پروکسی را در محیط شروع هم بگیرد؛ export در ترمینال بعدی سرویس در حال اجرا را بهروز نمیکند.
Docker Desktop
از تنظیم پروکسی Desktop استفاده کنید. Docker مستند کرده که Desktop ورودیهای پروکسی در daemon.json را نادیده میگیرد؛ بنابراین تغییر مکرر نمونه Engine بومی مسیر این محصول را تنظیم نمیکند.
پس از تغییر بخش درست، دوباره دریافت ایمیج را امتحان کنید. بخوانید کدام بخش شکست خورده: دسترسی رجیستری، احراز هویت، تغییر مسیر یا دانلود لایه. درخواست HTTP موفق داخل کانتینر موجود فقط مسیر همان برنامه را بررسی میکند. اطلاعات ورود پروکسی را در عکسهای اشتراکی یا فایلهای commitشده نگذارید؛ تنظیم daemon و محیط کانتینر مخزن اسرار نیستند.