StableProxy Strona główna
Menu
Flaga Polska
Autoryzacja

Konfigurujemy serwer proxy na platformie Docker

Krok po kroku instrukcja jak skonfigurować serwer proxy w Dockerze za pomocą wiersza poleceń (CLI) oraz pliku konfiguracyjnego config.json.

Олександр Л.

Олександр Л.

12 czerwca 20253093
Strona główna/Instrukcje konfiguracji serwera proxy/Konfiguracja serwera proxy na platformie Docker: Instrukcja | StableProxy
    • Czym jest Docker
    • Konfigurujemy proxy w Dockerze
12 czerwca 20253093

Konfiguracja serwera proxy może być wymagana na platformie Docker в wielu przypadkach. Najczęstszymi są omijanie limitów dostawcy internetowego oraz testowanie opracowanego przez Ciebie oprogramowania w wielu geolokalizacjach. Zacznijmy od przyjrzenia się pojęciu Dockera.

Czym jest Docker

Dockerem nazywa się zestaw produktów wdrożonych zgodnie z zasadą „platforma jako usługa” (PaaS), które wykorzystują wirtualizację na poziomie systemu operacyjnego w celu dostarczania oprogramowania w pakietach zwanych kontenerami, czyli do przeprowadzania konteneryzacji pakietów. Usługa przewiduje różne poziomy płatności: bezpłatny oraz premium z rozszerzonymi funkcjami. To oprogramowanie zostało wydane w 2013 roku. Innymi słowy, Docker to platforma do programowania, dostarczania i uruchamiania oprogramowania, w której można oddzielić Twoje oprogramowanie od Twojej infrastruktury. Dzięki temu zebrany kontener można uruchamiać na różnych systemach operacyjnych. Ponadto miło Ci będzie dowiedzieć się, że platforma Docker obsługuje SSL, co zapewnia doskonały stopień bezpieczeństwa informacyjno-sieciowego podczas pracy z nią, w szczególności podczas testowania działania aplikacji. Konteneryzowane informacje zawierają:

  • Samo oprogramowanie, którego uruchomienia wymaga programista;
  • Środowisko uruchomieniowe — maszynę wirtualną z zestawem minimalnie niezbędnych procesów;
  • Pliki wymagane do uruchomienia oprogramowania;
  • Serwer.

Konfigurujemy proxy w Dockerze

Istnieją 2 sposoby konfiguracji: za pomocą wiersza poleceń oraz przy użyciu pliku konfiguracyjnego. Praca w wierszu poleceń wygląda następująco:

  1. Ponieważ będziesz używać parametru proxy.example.com:Port, musisz poznać adres IP swojego proxy oraz używany port.
  2. W wierszu poleceń wpisujemy komendę docker build, która tworzy konfigurację. Należy w niej użyć argumentu --build-arg. Pełna komenda będzie wyglądać tak: Bash
    docker build --build-arg HTTP_PROXY="http://proxy.example.com:Port" .
    
  3. Następnie w wierszu poleceń wprowadzamy komendę docker run, aby uruchomić utworzoną konfigurację. Należy użyć argumentu --env. Pełna komenda będzie wyglądać następująco: Bash
    docker run --env HTTP_PROXY="http://proxy.example.com:Port" redis
    

Konfiguracja proxy Docker za pomocą pliku konfiguracyjnego wygląda następująco:

  1. W katalogu roboczym znajdź folder .docker. Powinien w nim znajdować się plik o nazwie config.json. Utwórz go, jeśli nie istnieje.
  2. В pliku, używając wybranego przez siebie edytora kodu, wprowadź linie: JSON
    {
     "proxies": {
       "default": {
         "httpProxy": "http://proxy.example.com:Port",
         "httpsProxy": "https://proxy.example.com:Port",
         "ftpProxy": "https://proxy.example.com:Port",
         "noProxy": "*.test.example.com,.example.org,127.0.0.0/8"
       }
     }
    }
    
  3. W miejscu proxy.example.com:Port należy podać dane swojego IP oraz portu, analogicznie як w przykładzie z wierszem poleceń.
  4. W pliku konfiguracyjnym, jak widać z powyższego kodu, możesz użyć 4 opcji proxy:
    • HttpProxy — dla opcji http bez szyfrowania;
    • HttpsProxy — для opcji https z istniejącym szyfrowaniem;
    • ftpProxy — dla opcji ftp w celu przesyłania plików za pomocą ftp;
    • noProxy — do kierowania ruchu bezpośredniego.

Analogiczne opcje proxy należy stosować również podczas pracy з wierszem poleceń, w zależności od tego, jakie jest Twoje proxy. Po zapisaniu pliku konfiguracyjnego docker proxy, wskazane przez Ciebie informacje będą stosowane do wszystkich nowych kontenerów oraz do gotowych kontenerów pobieranych z repozytorium Dockera.


Popularne pytania

Jak skonfigurować autoryzację (login i hasło) dla proxy w Dockerze?

Jeśli Twoje proxy wymagają uwierzytelniania loginem i hasłem, należy je dodać bezpośrednio do adresu URL proxy wewnątrz pliku konfiguracyjnego lub komendy. Format zapisu wygląda następująco: http://username:[email protected]:Port. Pamiętaj, że jeśli hasło zawiera znaki specjalne (np. @, :, /), muszą one zostać zakodowane w formacie URL-encode.

Dlaczego po zmianie config.json aktualnie uruchomione kontenery не używają proxy?

Konfiguracja zapisana w pliku ~/.docker/config.json jest stosowana jako zmienne środowiskowe (environment variables) wyłącznie w momencie tworzenia lub uruchamiania nowych kontenerów. Już uruchomione kontenery nie mogą dynamicznie odczytywać zmian з tego pliku. Aby zaczęły działać przez proxy, należy je zatrzymać, usunąć i uruchomić ponownie.

Jak skonfigurować proxy nie dla kontenerów, ale dla samego demona Docker (aby pobierać obrazy)?

Aby sam Docker mógł pobierać obrazy (wykonywać docker pull) przez proxy, ustawienia użytkownika w config.json nie wystarczą. Należy skonfigurować proxy dla usługi systemowej (Docker daemon). W systemach Linux wykonuje się to poprzez utworzenie pliku konfiguracyjnego w ścieżce /etc/systemd/system/docker.service.d/http-proxy.conf ze wskazaniem zmiennych środowiskowych HTTP_PROXY i HTTPS_PROXY, а następnie zrestartowanie usługi poleceniem systemctl restart docker.

Co zrobić, jeśli kontener wymaga dostępu do usług lokalnych z pominięciem proxy?

Do tego celu służy parametr noProxy w pliku konfiguracyjnym lub argument --env NO_PROXY="...". Wpisuje się w nim, rozdzielając przecinkami, nazwy domen, hosty lub podsieci, ruch do których ma odbywać się bezpośrednio. Pamiętaj, aby dodać tam wartości localhost, 127.0.0.1 oraz maskę sieci wewnętrznej Twojego środowiska Docker, aby nie zablokować komunikacji między kontenerami.

Czy można skonfigurować różne proxy dla różnych kontenerów jednocześnie?

Tak. Plik config.json określa domyślne (globalne) ustawienia dla wszystkich kontenerów. Jeśli chcesz, aby konkretny kontener działał przez inne proxy, po prostu nadpisz zmienne środowiskowe bezpośrednio podczas jego uruchamiania za pomocą flag -e HTTP_PROXY="..." i -e HTTPS_PROXY="..." w poleceniu docker run. Parametry wiersza poleceń mają wyższy priorytet.

Czy proxy SOCKS5 działają w konfiguracji Dockera?

Oficjalnie Docker w pliku config.json oczekuje parametrów httpProxy oraz httpsProxy. Jednak wiele nowoczesnych narzędzi i obrazów bazowych obsługuje protokół SOCKS5, jeśli wskażesz go w schemacie URL: socks5://proxy.example.com:Port lub socks5h://... (aby zapytania DNS również przechodziły przez proxy). Jeśli konkretne oprogramowanie wewnątrz kontenera nie obsługuje socks, konieczne będzie użycie narzędzi firm trzecich do konwersji ruchu (np. proxychains lub privoxy).

Loading...
StableProxy

StableProxy

© StableProxy – 2021 - 2026 – Ukraine

Status serwerówWsparcieFAQOpinieInstrukcjeBlogAPIPraca
Oferta publicznaPolityka prywatnościWarunki usługi
Payment methods