Docker-де проксиді қалай баптау керек (Контейнерлер, Compose және Builds)
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. Контейнердің орындалу ортасы | 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 пішіміне келтіріңіз
VinaProxy ұсынған
ip:port:user:passжолын біздің Proxy Format Converter құралымыздың көмегімен түрлендіріңіз. - 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 проксилерін сатып алу