我刚刚在服务器机箱上安装了全新的 Xenial,并几乎立即尝试在其上安装 Docker。
这Docker 安装页面说你必须创建一个/etc/apt/sources.list.d/docker.list
文件并在其中添加 docker repo 源:
deb https://apt.dockerproject.org/repo ubuntu-xenial main
然后,只需完成正常apt-get update & install
流程即可。此步骤通常非常简单,但在此全新的 xenial 上,此update
步骤始终超时:
Failed to fetch https://apt.dockerproject.org/repo/dists/ubuntu-xenial/InRelease Connection timed out after 120000 milliseconds
这里的重点是Docker 告诉我他们没有InRelease
仓库。通常情况下,apt-get update
应该尝试正在发布步骤,找不到已签名的内联源,然后应该尝试发布来源。
我的问题是我的全新 Xenial 停在那里而没有尝试Release
源代码。
我怎样才能强制 Ubuntu 检查
https://apt.dockerproject.org/repo/dists/ubuntu-xenial/Release
源而不是https://apt.dockerproject.org/repo/dists/ubuntu-xenial/InRelease
?
如果需要的话,结果如下uname -a
:
Linux sd-83589 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
我安装其他软件包(zsh、screen 等等)没有遇到任何问题。
请随时向我询问任何其他信息:我对此的了解远远超出了我的能力范围,所以我可能忘记了一些事情......
答案1
感谢@Law29,我了解到有些更新是通过 HTTPS 进行的,而其他更新则使用 HTTP :/
我可以检查curl
HTTPS 请求是否无法到达服务器。
原来是我的防火墙没有配置为接受端口 443 请求...添加正确的行解决了问题!谢谢@Law29!
答案2
我有同样的问题。/etc/apt/apt.conf
问题原因如下:
Acquire::http::Proxy "http://mirrors.aliyun.com/";
删除此文件后,现在一切正常。
更新
我还可以通过添加另一行来绕过 docker repo:
Acquire::http::Proxy "http://mirrors.aliyun.com/";
Acquire::http::Proxy::apt.dockerproject.org DIRECT;