ວິທີຕັ້ງຄ່າ proxy ໃນ Docker (Containers, Compose & Builds)
Updated:
ເມື່ອເປີດໃຊ້ງານ scraper ແບບຫຼາຍ container, ລະບົບອັດຕະໂນມັດ, ຫຼື DePIN node ເທິງເຊີບເວີ host ດຽວ, ການສົ່ງຄ່າ environment variable HTTP_PROXY ແລະ HTTPS_PROXY ໃຫ້ແຕ່ລະ container ຈະຊ່ວຍໃຫ້ແຕ່ລະບໍລິການເຊື່ອມຕໍ່ອອກດ້ວຍ static IPv4 ແບບສະເພາະຂອງຕົນເອງຈາກ VinaProxy ໂດຍບໍ່ຕ້ອງແກ້ໄຂ routing table ຂອງເຄື່ອງ host.
ENV HTTP_PROXY=http://user:pass@ip:port HTTPS_PROXY=http://user:pass@ip:port- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
- 1 IP₫40.000
- 5+ IP₫35.000
- 10+ IP₫25.000
- 20+ IP₫25.000
- 50+ IP₫25.000
- 100+ IP₫25.000
- 200+ IP₫25.000
- 500+ IP₫25.000
- 1000+ IP₫22.000
- 2000+ IP₫20.000
ທຳຄວາມເຂົ້າໃຈກັບ 3 ຂອບເຂດການຕັ້ງຄ່າ proxy ໃນ Docker
Docker ແຍກທຣາຟິກລະຫວ່າງ container runtime, ການ build image, ແລະ ການ pull ຈາກ registry ຂອງ daemon ອອກຈາກກັນ:
| ຂອບເຂດ Docker | ບ່ອນທີ່ຕ້ອງຕັ້ງຄ່າ | ສິ່ງທີ່ມັນສົ່ງເສັ້ນທາງ |
|---|---|---|
| 1. Container Runtime | docker run -e HTTP_PROXY=... ຫຼື Compose environment: | ທຣາຟິກທີ່ສ້າງຂຶ້ນໂດຍແອັບພລິເຄຊັນພາຍໃນ container ນັ້ນ |
2. Image Build (docker build) | --build-arg HTTP_PROXY=http://user:pass@ip:port | ການດາວໂຫຼດຂອງ package manager (apt, pip, npm) ໃນລະຫວ່າງການ build |
3. Docker Daemon (dockerd) | /etc/systemd/system/docker.service.d/http-proxy.conf | ຄຳຮ້ອງຂໍ docker pull ແລະ docker push ໄປຍັງ registry |
ແນວທາງປະຕິບັດທີ່ດີທີ່ສຸດສຳລັບ Docker Compose & ກົດເກນ NO_PROXY
- ກຳນົດທັງຕົວແປພິມໃຫຍ່ (
HTTP_PROXY,HTTPS_PROXY,NO_PROXY) ແລະ ພິມນ້ອຍ (http_proxy,https_proxy,no_proxy) ເພື່ອໃຫ້ທຸກເຄື່ອງມື Linux CLI ແລະ runtime ຂອງພາສາສາມາດດຶງໄປໃຊ້ໄດ້ - ລະບຸຊື່ບໍລິການພາຍໃນຂອງ Docker Compose ສະເໝີ (ເຊັ່ນ:
NO_PROXY=localhost,127.0.0.1,redis,postgres) ເພື່ອໃຫ້ທຣາຟິກລະຫວ່າງ container ຍັງຄົງຢູ່ໃນເຄືອຂ່າຍ bridge ທ້ອງຖິ່ນ - ຢ່າໃສ່ລະຫັດຜ່ານ proxy ໄວ້ໃນ image ສາທາລະນະດ້ວຍ
ENVພາຍໃນDockerfileຢ່າງເດັດຂາດ—ໃຫ້ໃສ່ໃນເວລາ runtime ຜ່ານ.envຫຼືdocker-compose.yml
ເທື່ອລະຂັ້ນຕອນ
- 1
ຈັດຮູບແບບ proxy ຂອງທ່ານເປັນ http://user:pass@ip:port
ປ່ຽນຮູບແບບ
ip:port:user:passຂອງ VinaProxy ໂດຍໃຊ້ Proxy Format Converter ຂອງພວກເຮົາ. - 2
ເພີ່ມ environment variables ເຂົ້າໃນ docker-compose.yml
ພາຍໃຕ້
environment:ຂອງບໍລິການຂອງທ່ານ, ໃຫ້ກຳນົດHTTP_PROXY,HTTPS_PROXY,http_proxy,https_proxy, ແລະNO_PROXY=localhost,127.0.0.1,redis,db. - 3
ເລີ່ມຕົ້ນ ຫຼື ສ້າງ container ໃໝ່
ຣັນ
docker compose up -dເພື່ອນຳໃຊ້ environment variables. - 4
ກວດສອບ IP ຂາອອກຈາກພາຍໃນ container
ຣັນ
docker exec -it <container> curl -s https://vinaproxy.com/api/my-ipເພື່ອຢືນຢັນວ່າ container ເຊື່ອມຕໍ່ອອກຜ່ານ IP ຂອງ proxy ຂອງທ່ານ.
ຄຳຖາມທີ່ຖາມເລື້ອຍໆ
ເປັນຫຍັງ container ຂອງຂ້ອຍຈຶ່ງບໍ່ສາມາດເຊື່ອມຕໍ່ກັບ container Redis ຫຼື Postgres ໄດ້ຫຼັງຈາກຕັ້ງຄ່າ HTTP_PROXY?
ຫາກບໍ່ມີ NO_PROXY, HTTP client ຂອງທ່ານຈະພະຍາຍາມເຊື່ອມຕໍ່ໄປຫາຊື່ບໍລິການພາຍໃນເຊັ່ນ redis ຫຼື db ຜ່ານ proxy ພາຍນອກ. ໃຫ້ເພີ່ມ NO_PROXY=localhost,127.0.0.1,redis,db (ແລະ ຕົວພິມນ້ອຍ no_proxy) ເພື່ອຂ້າມ proxy ສຳລັບ host ໃນເຄືອຂ່າຍ bridge ພາຍໃນ.
ຂ້ອຍສາມາດກຳນົດ 20 proxy ທີ່ແຕກຕ່າງກັນໃຫ້ກັບ 20 container ເທິງ VPS ດຽວໄດ້ບໍ?
ໄດ້. ພຽງແຕ່ກຳນົດແຕ່ລະບໍລິການ container (ຫຼື ສົ່ງຄ່າຕົວແປ .env ທີ່ຕ່າງກັນ) ດ້ວຍຂໍ້ຄວາມ http://user:pass@ip:port ສະເພາະຂອງມັນເອງ.
ເປັນຫຍັງຕ້ອງກຳນົດຕົວແປ proxy ທັງຕົວພິມໃຫຍ່ ແລະ ຕົວພິມນ້ອຍ?
ໄລບຣາຣີ Linux ບາງຕົວ (ເຊັ່ນ libcurl) ຈະກວດສອບຕົວພິມນ້ອຍ http_proxy / https_proxy ກ່ອນ, ໃນຂະນະທີ່ເຄື່ອງມື Go ແລະ Node ມັກຈະກວດສອບຕົວພິມໃຫຍ່ HTTP_PROXY / HTTPS_PROXY.
ກຳນົດ static IP ແບບສະເພາະໃຫ້ທຸກໆ Docker container
Dedicated IPv4 ແລະ Static ISP proxy ແບບບໍ່ຈຳກັດປະລິມານການນຳໃຊ້ ທັນທີໃນ 7 ປະເທດ.
ຊື້ Docker Proxy