陆游气坏了,然后我们就没办法上网了
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有效,每个容器内还是需要再单独设置代理的——所以,不如搞个旁路由网关得了。
发表回复