使用ssh端口转发作为docker代理

由于家里网络比较差,导致在使用docker公网服务的时候访问速度很慢,甚至出现无法访问的问题,因此需要使用代理

设置ssh代理

以下地址根据你的实际情况修改

# 192.168.2.20   是内网你的任意一台服务器用来做跳转,当然也可以是docker自己的那台服务器
# 173.254.246.25 是外网你的代理服务器地址
[root@dev25 ~]# ssh -qTfnN -D 192.168.2.20:7070 root@173.254.246.25

# ssh端口转发启动好后,可以通过curl命令验证下是否正常,如果有返回说明配置正常
[root@dev25 ~]# curl --socks5-hostname 192.168.2.20:7070 https://baidu.com

配置docker使用代理

http-proxy.conf默认是不存在的,需要手动创建

[root@dev25 ~]# mkdir -p /etc/systemd/system/docker.service.d/
[root@dev25 ~]# vim /etc/systemd/system/docker.service.d/http-proxy.conf

http-proxy.conf文件中,加入如下信息,192.168.2.20:7070是上一步设置ssh代理的时候配置的内网地址

[Service]
Environment="all_proxy=socks5://192.168.2.20:7070"
Environment="NO_PROXY=localhost,127.0.0.1,private.docker.registry.com"

重启docker服务

[root@dev25 ~]# systemctl daemon-reload
[root@dev25 ~]# systemctl restart docker

# 后面再使用docker pull/search这类会访问外网的命令时,会通过代理转发
[root@dev25 ~]# docker pull centos

验证

如果要验证配置是否成功,可以通过如下方法

# 安装net-tools工具
[root@dev25 ~]# yum install net-tools -y
# 登录你的转发服务器,比如示例中的192.168.2.20,当使用docker pull images的时候
# 使用如下命令,检查是否有从docker服务器发过来的请求,如果有说明配置成功
[root@dev20 ~]# netstat -anp | grep 7070

转载于:https://my.oschina.net/u/2307042/blog/1552281

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值