我正在建立一個在發送 HTTP 請求時應使用代理伺服器的 docker 容器。不幸的是,我無法讓它工作 - 即使憑證正確,我也無法從容器內部對代理進行身份驗證。
預期結果
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 環境相同)
- 將“Acquire::http::Proxy”字串新增至 /etc/apt/apt.conf (與 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