解决LEDE无法下载Docker环境的问题

Linux, 折腾 2019/03/03

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

结果:成功

5.评论有大神给出了一个很直接的方法,请直接向下翻

结果:未验证

解决

一、服务器端

手头有个阿里云香港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插件页面,再次部署

完美解决!



10条评论

  • whogh 评论于

    其实只要把下载下来的最新版docker解压到设置的安装目录就行了,不用这么麻烦

    • Bug侠 评论于

      @whogh 感谢提供最优解……拜谢……

      • kids 评论于

        @Bug侠 我lede下的docker安装目录为sdb1,即默认硬盘的根目录,我把下载的最新的docker的tgz文件和解压后的文件都放在sdb1的目录下,还是会报错,是不是最新下载的docker文件名需要修改?请教下是否了解?谢谢!

        • Bug侠 评论于

          @kids 啊不好意思,这个方法我没验证。但是理论是可行的,我就用我的方法安装成功后就再没折腾过lede下的docker插件了。 :笑哭:

          • kids 评论于

            @Bug侠 放屁了,多谢。改天再用你的办法试试。

  • lilei9633 评论于

    老哥,没法添加SSL证书啊,要域名验证!

    • Bug侠 评论于

      @lilei9633 配置文件里可以直接写 listen 443 ssl;

  • 老刘 评论于

    老哥,要是没有VPS的,有没有其他办法,求教。

    • Bug侠 评论于

      @老刘 其他方法暂时没考虑到,不过酷软里好像有搭建lnmp环境的插件,可以在路由器搭建个假网站,其他的就大同小异了。

      • kids 评论于

        @Bug侠 放弃了。。

    评论(*号为必填项)