web-dev-qa-db-ja.com

新しいdocker image updateでハッシュ和の不一致エラーを修正する方法は?

次のdockerfileに対してdocker build .を実行する

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に追加しようとしました: 「ハッシュ合計の不一致」エラーによるパッケージリストのダウンロードのトラブル

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

しかし、私は同じエラーを受け取ります。

他に何ができますか?

3
Richard

私はあなたの問題を考えたかもしれないと思う:

Dockerの依存関係が欠落しているか、dockerが正しくインストールされていない可能性があります。

buntuでのDockerのインストール の完全な手順は次のとおりです。

特に この部分 が欠落している可能性があります。

これらの公式の指示に従ってdockerを再インストールすることをお勧めします。

問題が解決しない場合は、VMまたはホストマシンのネットワーク接続に問題がある可能性があります。

結局、あなたのDockerfileは私には正しいようですので、これが原因ではないはずです。

1
FatalMerlin

選択したソリューションは私にとってはうまくいきませんでした。そして、私はこれが常にそうであるとは限らないことに気付きました-つまり、私が1日か2日待っても、エラーが出ません。使用しているdockerのバージョン( Robie で説明されている)よりも、ubuntuリポジトリに関係していると思われます。

私の解決策は、デフォルトのubuntuリポジトリの代わりに official mirrors のいずれかを使用することです。 xenialをUbuntuバージョンに置き換えます。不一致が発生している場所に応じて、すべての行またはすべての行に追加のdeb-src行が必要になる場合があります。ミラーはデフォルトに比べて遅いことがわかりました。

RUN rm -rf /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb-src mirror://mirrors.ubuntu.com/mirrors.txt xenial-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-security main restricted universe multiverse" >> /etc/apt/sources.list
1
Srikanth