Како подесити прокси у Docker-у (контејнери, Compose и израда слика)
Updated:
Када покрећете скрејпере са више контејнера, процесе за аутоматизацију или DePIN чворове на једном хост серверу, прослеђивање HTTP_PROXY и HTTPS_PROXY варијабли окружења по контејнеру омогућава сваком сервису да излази преко сопствене наменске статичке IPv4 адресе од VinaProxy без мењања табеле рутирања на хост машини.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40.000 VND
- 5+ IP-ја35.000 VND
- 10+ IP-ја25.000 VND
- 20+ IP-ја25.000 VND
- 50+ IP-ја25.000 VND
- 100+ IP-ја25.000 VND
- 200+ IP-ја25.000 VND
- 500+ IP-ја25.000 VND
- 1000+ IP-ја22.000 VND
- 2000+ IP-ја20.000 VND
- 1 IP40.000 VND
- 5+ IP-ја35.000 VND
- 10+ IP-ја25.000 VND
- 20+ IP-ја25.000 VND
- 50+ IP-ја25.000 VND
- 100+ IP-ја25.000 VND
- 200+ IP-ја25.000 VND
- 500+ IP-ја25.000 VND
- 1000+ IP-ја22.000 VND
- 2000+ IP-ја20.000 VND
Разумевање 3 нивоа конфигурације Docker проксија
Docker раздваја саобраћај извршавања контејнера, саобраћај израде слика и преузимања са регистра од стране демона:
| Docker ниво | Где се конфигурише | Шта рутира |
|---|---|---|
| 1. Извршавање контејнера | docker run -e HTTP_PROXY=... or Compose environment: | Саобраћај који генерише апликација унутар тог конкретног контејнера |
2. Израда слике (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | Преузимања менаџера пакета (apt, pip, npm) током израде |
3. Docker демон (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | docker pull и docker push захтеви ка регистрима |
Најбоље праксе за Docker Compose и NO_PROXY правила
- Подесите и велика (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) и мала (http_proxy,https_proxy,no_proxy) слова за варијабле како би их сви Linux CLI алати и језичка извршна окружења препознали - Увек наведите интерне називе сервиса у Docker Compose-у (нпр.
NO_PROXY=localhost,127.0.0.1,redis,postgres) како би саобраћај између контејнера остао на локалној bridge мрежи - Никада не уграђујте лозинке проксија у јавне слике помоћу
ENVунутарDockerfile-а — унесите их приликом покретања путем.envилиdocker-compose.yml
Корак по корак
- 1
Форматирајте свој прокси као http://user:pass@ip:port
Конвертујте своју VinaProxy линију
ip:port:user:passпомоћу нашег алата Конвертер формата проксија. - 2
Додајте варијабле окружења у docker-compose.yml
Испод
environment:вашег сервиса дефинишитеHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxyиNO_PROXY=localhost,127.0.0.1,redis,db. - 3
Покрените или поново креирајте контејнер
Покрените
docker compose up -dда бисте применили варијабле окружења. - 4
Проверите излазну IP адресу из контејнера
Извршите
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipда потврдите да контејнер излази преко ваше IP адресе проксија.
Често постављана питања
Зашто мој контејнер не може да приступи мом Redis или Postgres контејнеру након подешавања HTTP_PROXY?
Без NO_PROXY, ваш HTTP клијент покушава да приступи интерним називима сервиса као што су redis или db преко спољног проксија. Додајте NO_PROXY=localhost,127.0.0.1,redis,db (и малим словима no_proxy) да бисте заобишли прокси за интерне bridge хостове.
Могу ли да доделим 20 различитих проксија за 20 контејнера на једном VPS-у?
Да. Дефинишите сваки сервис контејнера (или проследите засебне .env варијабле) са сопственим стрингом http://user:pass@ip:port.
Зашто подешавати варијабле проксија и великим и малим словима?
Неке Linux библиотеке (као што је libcurl) прво проверавају мала слова http_proxy / https_proxy, док Go и Node алати често проверавају велика слова HTTP_PROXY / HTTPS_PROXY.
Доделите наменске статичке IP адресе сваком Docker контејнеру
Тренутни неограничени Dedicated IPv4 и Static ISP проксији у 7 земаља.
Купите Docker проксије