docker build .
针对以下 dockerfile运行
FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get update -y
我得到错误
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/source/by-hash/SHA256/50ccff6c903e98e2e52c1ab6dae4a85d23a84369325fd971c4bfc3752e6a7ede Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
然后我尝试将这个问题中的每个解决方案添加到我的 dockerfile 中: Trouble download packages list due to a "Hash sum mismatch" error
FROM ubuntu:16.04
MAINTAINER [email protected]
RUN touch /etc/apt/apt.conf.d/99fixbadproxy \
&& echo "Acquire::http::Pipeline-Depth 0;" >> /etc/apt/apt.conf.d/99fixbadproxy \
&& echo "Acquire::http::No-Cache true;" >> /etc/apt/apt.conf.d/99fixbadproxy \
&& echo "Acquire::BrokenProxy true;" >> /etc/apt/apt.conf.d/99fixbadproxy \
&& apt-get update -o Acquire::CompressionTypes::Order::=gz \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get update -y
但我得到同样的错误。
我还可以做些什么?
选择的解决方案对我不起作用。而且我注意到情况并非总是如此 - 也就是说,如果我等待一两天,我不会收到错误消息。我怀疑它与 ubuntu 存储库有关,而不是我们使用的 docker 版本(如Robie所解释的)。
我的解决方案是使用官方镜像之一,而不是默认的 ubuntu 存储库。将 xenial 替换为您的 ubuntu 版本。您可能需要一个额外的 deb-src 行来为所有行或不需要所有行,具体取决于您在哪里得到不匹配。我注意到镜像比默认的要慢。
我想我可能已经发现了你的问题:
您可能缺少 Docker 的依赖项,或者 docker 未正确安装。
这是在 Ubuntu 上安装 Docker的完整说明。
特别是这部分可能会丢失。
我建议您使用这些官方说明重新安装 docker。
如果问题仍然存在,则您的 VM 或主机的网络连接可能存在问题。
毕竟你的 Dockerfile 对我来说似乎是正确的,所以这不应该是原因。