Docker 插件安装后,初始化时总是报错,提交数据失败!错误代码:-6
分析
开始逐个分析,先看日志
提示:安装运行环境失败,你的网络可能有问题,请重试!
应该是哪里卡住了,shell 看进程 ps -w | grep docker
,原来是 wget 时卡住了
进到 docker 运行环境的官网目录,https://download.docker.com/linux/static/stable/x86_64/
复制最新的 docker:https://download.docker.com/linux/static/stable/x86_64/docker-18.09.3.tgz
手动在 shell 下执行
wget --no-check-certificate --timeout=8 --tries=2 https://download.docker.com/linux/static/stable/x86_64/docker-18.09.3.tgz
我去……这下载速度也是牛逼 ,而且还解析到了 IPv6 地址(本机使用了 IPv6)
速度这么慢,难怪一直下载不动,卡在 wget 那里了。
思路
找到原因了,就知道怎么办了。思路如下:
1.反向代*理 download.docker.com
结果:失败,download.docker.com 做了限制,反代没成功
2.给 wget 命令设置全局代*理export http_proxy=http://127.0.0.1:23456
结果:失败,不起作用
3.修改/koolshare/scripts/docker_config.sh 里的配置
结果:失败,这个脚本不是简单的 shell 脚本,而是可执行的 Linux 程序,没法编辑……
4.做一个假的 download.docker.com
结果:成功
解决
一、服务器端
手头有个阿里云香港 VPS,添加网站 download.docker.com
然后随便添加一个 SSL 证书(因为脚本端 wget 加入了 no-check-certificate 参数,所以 SSL 证书可以随意添加)
网站根目录新建 /linux/static/stable/x86_64/
子目录,并在此路径下,将docker 运行环境的官网目录整站下载下来(也可以只下载最新版)
wget -nd -r -l1 --no-parent https://download.docker.com/linux/static/stable/x86_64/
到此,假的 docker 运行环境目录已部署完毕
三、LEDE 端
添加一行 假网站的 IP download.docker.com
,让路由器能将 download.docker.com 解析到假的服务器上,保存 host 使之生效
关闭网络的 IPv6 功能,避免其解析到 IPv6 地址上,我这里是 PPPOE 下的 IPv6
shell 端测试假网站是否生效
wget --no-check-certificate https://download.docker.com/linux/static/stable/x86_64/docker-18.09.3.tgz
回到 docker 插件页面,再次部署
完美解决!