给威联通Docker设置代理


发布于

|

分类

陆游气坏了,然后我们就没办法上网了

6月中,docker hub在国内被屏蔽了,各种镜像源也纷纷下线。哎,那就只好保护一下隐私吧就。

“拉镜像”这个事儿是由dockerd来完成的。如果你在命令行里先设置代理,再docker pull,是没用的。

那么如何让dockerd走代理呢?查了docker的文档,应该是有两个办法。一个办法是在dockerd启动脚本里面设置环境变量,另一个办法是在dockerd的设置里面设置代理。

方法一:启动脚本中配置代理

对于威联通来说,dockerd的启动脚本为   /share/CACHEDEV1_DATA/.qpkg/container-station/script/run-docker.sh 。我们需要在几乎最后的位置,exec dockerd $DOCKER_OPTS上面,加入设置代理的环境变量:

export https_proxy=http://192.168.12.34:7890
export http_proxy=http://192.168.12.34:7890
export no_proxy=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,*.local,*.lan

之后重启container station即可生效。

方法二:在配置文件里面配置代理

docker文档里面说,这个方法适用于dockerd版本大于23.0。但是我看到2024年7月,威联通的dockerd版本为20.10.27,其实并不支持这个方法。我不确定能成功。

编辑 /share/CACHEDEV1_DATA/.qpkg/container-station/etc/system-docker.json ,加入下面这些东西:

"proxies": {
    "http-proxy": "http://192.168.12.34:7890",
    "https-proxy": "http://192.168.12.34:7890",
    "no-proxy": "127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,*.local,*.lan"
  }

保存。然后同样是重启container station生效。

哦对了,其实还有其他办法:在qnap里直接设置代理。I mean,搞个透明网关/旁路由网关。不过,我不会😂

最后,上述方法只对dockerd有效,每个容器内还是需要再单独设置代理的——所以,不如搞个旁路由网关得了。

参考资料


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注