Docker bridge konteynerindən host proksiyə çatmaq
Konteynerdən əlçatan proksi ünvanı seçin və ictimai son nöqtəni Docker hostunda işləyən proksidən ayırın.
Adi bridge şəbəkəli konteynerdə 127.0.0.1 konteynerin öz loopback ünvanıdır. Noutbukun localhost-unda dinləyən proksi hər konteynerdə avtomatik dinləmir.
Bu, tez rastlanan fərqi izah edir: eyni proksi URL-i host terminalında işləyir, konteynerdə isə bağlantı rədd edilir. Ünvan hər yerdə başqa şəbəkə son nöqtəsini göstərir.
İctimai proksini birbaşa istifadə etmək olar
Xidmətdən və ya HTTP proksi siyahısından seçilən son nöqtə həqiqətən əlçatan ictimai IP-dirsə, localhost-a çevirmək əvəzinə həmin ünvanı tətbiqə verin:
docker run --rm \
-e HTTP_PROXY=http://203.0.113.10:8080 \
-e HTTPS_PROXY=http://203.0.113.10:8080 \
your-image
Sənəd ünvanını və image-i dəyişin. Image daxilindəki proqram bu mühit dəyişənlərini yenə dəstəkləməlidir; Docker dəyişənlər var deyə hər soketi proksi sorğusuna çevirmir.
Proksi Docker hostunda işləyirsə
Docker Desktop hostun daxili ünvanına çatmaq üçün host.docker.internal verir. Dəstəklənən yerli Engine quruluşunda host uyğunlaşdırması bu ənənəvi adı verə bilər:
docker run --rm \
--add-host host.docker.internal=host-gateway \
-e HTTP_PROXY=http://host.docker.internal:8080 \
-e HTTPS_PROXY=http://host.docker.internal:8080 \
your-image
Bu, ad həllini dəyişir, port yönləndirmə əmri deyil. Yerli Linux-da yalnız hostun loopback ünvanına bağlanmış xidmət hostun bridge ünvanından yenə əlçatmaz qala bilər. Dinləyici, təhlükəsizlik divarı və konteyner yolu bağlantını buraxmalıdır. Dinləyicini dəyişirsinizsə, kimlik yoxlamasız açıq proksi yaratmaq əvəzinə onu lazım olan müştərilərlə məhdudlaşdırın.
Tətbiqlə eyni yerdən sınayın
Hostdakı curl nəticəsi yalnız host yolunu sınayır. Sorğunu konteyner mühitindən göndərib nəzərdə tutulan son nöqtəyə çatdığını yoxlayın.
‘Host’ Docker Engine işlədən maşın deməkdir. Uzaq Engine olduqda bu həmişə noutbukunuz deyil. Yerli masaüstü tətbiqindən götürülən loopback IP-nin uzaq builder və ya serverdə dəyişmədən işləməsi buna görə xüsusilə az ehtimallıdır.
Image endirmə problemlərini ayırın: tətbiq yuxarıdakı mühiti istifadə edə bilmədən daemon image-i endirir.