如何在Ubuntu VM上从Ubuntu 16.04的docker内部通过Oracle VM(5.2.4)和Windows 7上的cntlm代理进行Internet http调用?
已配置代理(IP 192.168.56.1,VM主机)。在Ubuntus Firefox中或从命令行使用wget可以成功访问Internet。
Docker CE(17.12.0-ce)配置为也使用代理ip:
/etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.56.1:3128/"
Environment="HTTPS_PROXY=http://192.168.56.1:3128/"
我可以成功提取的所有docker镜像。
只有wget或docker容器内的所有安装调用都会失败。
以后有很多帮助页面,我对此一无所知。
我的尝试:
docker run --name test --network host -e "https_proxy=https://192.168.56.101:3128" -it alpine:latest wget https://www.web.de
wget: bad address 'www.web.de'
docker run --name test --dns 8.8.8.8 -e "https_proxy=https://192.168.56.101:3128" -it alpine:latest wget https://www.web.de
wget: bad address 'www.web.de'
docker run --name test -e "https_proxy=https://192.168.56.101:3128" -it alpine:latest wget https://www.web.de
wget: bad address 'www.web.de'
docker run --name test --network host --dns 8.8.8.8 -e "https_proxy=https://192.168.56.101:3128" -it alpine:latest wget https://www.web.de
wget: bad address 'www.web.de'
所有打印的 call 也带有“http”,并且没有代理环境。
还有我的主意吗?
最佳答案
为了使Docker与CNTLM一起使用,设置
Gateway yes
在CNTLM-Config中。
我直接在VM上运行CNTLM,并将容器内的所有代理设置为http://172.17.0.1:3128。
为了完整起见,请在 docker run 中设置所有Proxy-Env:
PROXY_DOCKER="http://172.17.0.1:3128/"
docker run -e HTTP_PROXY=${PROXY_DOCKER} -e http_proxy=${PROXY_DOCKER} -e HTTPS_PROXY=${PROXY_DOCKER} -e https_proxy=${PROXY_DOCKER} ...
关于docker - 从docker内部通过Oracle VM和cntlm代理进行Internet访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52262372/