[求助] docker 容器如何使用本机容器外的 http_proxy

查看 103|回复 10
作者:leverestfish   
网络小白来求助一下:代理是在本机的 7890 端口,请问如何在同一个机器的 docker 容器内通过代理来访问网络?
直接 export http\_proxy=127.0.0.1:7890; ... 显然是不行的
按照官网文档尝试了使用/etc/systemd/system/docker.service.d/http-proxy.conf 好像并不管用
也按照这个stack overflow的方法试了一下,可以 ping 通 172.17.0.2 ( ifconfig 显示的 ip ),但是并不能使用 7890 端口
备注:系统是 ubuntu (代理用的是 cfw ),docker 是 centos 镜像
感谢!

Docker, 容器, 代理

yangyaofei   
这个里面有 https://docs.docker.com/network/proxy/
其实最简单的方法是直接 cfw 开启 tun 模式,就好了
ShineyWang   
httpproxy=127.0.0.1:7890
这里的 127.0.0.1 改成本机的局域网 IP(这个 IP 才能让 docker 内的容器直接访问)
设置后可以通过 CURL google 测试连接
Achilless   
简单点,clash 开 tunnel 模式就完了
leverestfish
OP
  
@ShineyWang #2 我用 ip addr show docker0 命令看到宿主机的局域网 ip 是 172.17.0.1 ,但是我在 docker 里面加载代理之后 curl 会得到 Failed to connect to 172.17.0.1 port 7890: Connection refused ,确认过本机 127.0.0.1:7890 直接 curl google 是没有问题的,好奇怪,难道是启动 docker 容器的时候要加什么参数吗…… 参考了这个教程 https://jingsam.github.io/2018/10/16/host-in-docker.html
leverestfish
OP
  
@yangyaofei #1 tun 模式开启之后还需要其他相应操作吗
token10086   
mac export https_proxy=http://host.docker.internal:1081;export http_proxy=http://host.docker.internal:1081;export all_proxy=socks5://host.docker.internal:1081
linux 替换成 172.17.0.1
cc666   
关键字:host.docker.internal ,docker 内部访问这个网址即访问 docker 宿主机地址
leverestfish
OP
  
@Achilless #3 @yangyaofei #1 确实可以了! nb !
leverestfish
OP
  
@token10086 #6 四楼试过了,不行
您需要登录后才可以回帖 登录 | 立即注册

返回顶部