Docker'до прокси кантип орнотулат (Контейнерлер, Compose жана куруулар)
Updated:
Бир хост-серверде көп контейнерлүү скрейперлерди, автоматташтыруу воркерлерин же DePIN түйүндөрүн иштетүүдө ар бир контейнерге HTTP_PROXY жана HTTPS_PROXY чөйрө өзгөрмөлөрүн өткөрүү хост-машинанын маршрутташтыруу таблицасын өзгөртпөстөн, ар бир сервиске VinaProxy кызматынын өзүнчө арналган туруктуу IPv4 дареги аркылуу чыгууга мүмкүндүк берет.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
- 1 IP40 000 ₫
- 5+ IP35 000 ₫
- 10+ IP25 000 ₫
- 20+ IP25 000 ₫
- 50+ IP25 000 ₫
- 100+ IP25 000 ₫
- 200+ IP25 000 ₫
- 500+ IP25 000 ₫
- 1000+ IP22 000 ₫
- 2000+ IP20 000 ₫
Docker проксисин конфигурациялоонун 3 чөйрөсүн түшүнүү
Docker контейнердин иштөө убактысындагы трафигин, образды куруу трафигин жана демондун реестрден тартып алууларын бөлөт:
| Docker чөйрөсү | Кайда конфигурацияланат | Эмнени багыттайт |
|---|---|---|
| 1. Контейнердин иштөө убактысы (Container Runtime) | docker run -e HTTP_PROXY=... же 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 эрежелери
- Бардык Linux CLI куралдары жана программалоо тилдеринин чөйрөлөрү аларды таанышы үчүн чоң тамгалардагы (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) жана кичине тамгалардагы (http_proxy,https_proxy,no_proxy) өзгөрмөлөрдү тең орнотуңуз - Контейнерлер аралык трафик жергиликтүү bridge тармагында калышы үчүн ар дайым ички Docker Compose сервистеринин аталыштарын көрсөтүңүз (мисалы,
NO_PROXY=localhost,127.0.0.1,redis,postgres) - Прокси сырсөздөрүн
DockerfileичиндегиENVаркылуу эч качан ачык образдардын ичине катпаңыз — аларды иштөө учурунда.envжеdocker-compose.ymlаркылуу киргизиңиз
Кадам-кадам
- 1
Проксиңизди http://user:pass@ip:port форматына келтириңиз
Биздин Proxy Format Converter куралыбызды колдонуп, өзүңүздүн 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 даректи текшериңиз
Контейнер сиздин прокси IP дарегиңиз аркылуу чыгып жатканын ырастоо үчүн
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipбуйругун иштетиңиз.
Көп берилүүчү суроолор
Эмне үчүн HTTP_PROXY орнотулгандан кийин менин контейнерим Redis же Postgres контейнерине туташа албай калат?
NO_PROXY болбосо, сиздин HTTP кардарыңыз redis же db сыяктуу ички кызмат аталыштарына тышкы прокси аркылуу жетүүгө аракет кылат. Ички bridge хосттору үчүн проксини айланып өтүү максатында NO_PROXY=localhost,127.0.0.1,redis,db (жана кичине тамга менен no_proxy) кошуңуз.
Бир VPS'теги 20 контейнерге 20 ар башка прокси дайындай аламбы?
Ооба. Ар бир контейнер кызматын (же өзүнчө .env өзгөрмөлөрүн өткөрүп) өзүнүн жеке http://user:pass@ip:port сабы менен аныктаңыз.
Эмне үчүн чоң жана кичине тамгалардагы прокси өзгөрмөлөрүн тең орнотуу керек?
Кээ бир Linux китепканалары (мисалы, libcurl) адегенде кичине тамгадагы http_proxy / https_proxy өзгөрмөлөрүн текшерет, ал эми Go жана Node куралдары көбүнчө чоң тамгадагы HTTP_PROXY / HTTPS_PROXY өзгөрмөлөрүн текшеришет.
Ар бир Docker контейнерине арналган туруктуу IP даректерди дайындаңыз
7 өлкө боюнча чектөөсүз ыкчам Dedicated IPv4 жана Static ISP проксилери.
Docker проксилерин сатып алуу