HTTP 요청을 보낼 때 프록시 서버를 사용해야 하는 도커 컨테이너를 구축 중입니다. 불행히도 작동하도록 할 수 없습니다. 자격 증명이 정확하더라도 컨테이너 내부에서 프록시에 인증할 수 없습니다.
예상 결과는
curl https://api.myip.com
프록시 IP와 함께 JSON 응답을 반환합니다.
실제 결과:
curl https://api.myip.com
반환curl: (56) Received HTTP code 407 from proxy after CONNECT
내가 시도한 것:
- HTTP_PROXY 환경 변수 설정(HTTPS 환경과 동일)
- /etc/apt/apt.conf에 "Acquire::http::Proxy" 문자열 추가(https에도 동일)
- 다른 구성을 시도했습니다(ENV만, apt.conf 파일만, 둘 다).
제가 확인한 내용:
- /etc/apt/apt.conf에는 원하는 줄이 포함되어 있습니다(아래 제공).
- ENV가 컨테이너 내부에 올바르게 설정되었습니다.
- 프록시가 컨테이너 외부에서 올바르게 작동하고 있습니다.
- 컨테이너 외부에서 실행되는 브라우저를 통해 프록시 인증이 올바르게 작동합니다(인증 성공).
- docker 네트워킹이 제대로 작동합니다(프록시를 사용하지 않을 때 문제 없음).
내 apt.conf:
Acquire::http::Proxy "http://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::https::Proxy "https://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
Acquire::socks::Proxy "socks://<my_login>:<my_pass>@<proxy_ip>:<proxy_port>/";
내 Dockerfile:
from ubuntu:latest
COPY ./rss/apt.conf /apt.conf
ENV HTTP_PROXY=<ip>:<port>
ENV HTTPS_PROXY=<ip>:<port>
RUN apt update && apt install -y curl
RUN cat /apt.conf >> /etc/apt/apt.conf
ENTRYPOINT ["sleep","1000"]
도커 버전:
Docker version 20.10.8, build 3967b7d