Docker ubuntn apt-get updateを使用してエラーを報告
2789 ワード
dockerコンテナでapt-get updateを実行するとエラーが発生することがあります.もちろんエラーの原因は多くの場合、具体的な状況を具体的に分析します.
APT Hash sum mismatchエラーのよくある解決方法は、このブログがよく書かれていることをまとめ、ブロガーが提供した考え方に感謝します.
以下は本人がdocker容器の中でapt-get updateを実行して間違った解決方法を報告することを解決します(多くの穴を踏んで、血がびしょびしょになって、やっと使いやすくなりました.):
<1>まずdockerコンテナのDNSを構成する
cat/etc/resolv.confこのコマンドは、コンテナとシンクホストのDNS設定を表示します.コンテナとシンクホストのDNS設定は一致するはずです.
docker DNSの設定は、コンテナを起動するときにパラメータ--dns 8.8.8を追加することで設定できます(今回は有効)
または/etc/default/dockerのDNSパラメータで永続的に設定し、DOCKERを再起動して有効にします.
export http_proxy="http://10.1.9.100:808/" DOCKER_OPTS="--dns 210.83.210.155 --dns 127.0.1.1"
sudo service docker restart
<2>エージェントを構成するコンテナ/etc/apt/ディレクトリにapt.confファイルがあるかどうかを確認します.
ファイルがない場合は、ホスト内のapt.confファイルをコンテナ対応ディレクトリにコピーできます.
<3>プロキシサーバの設定:
会社のProxyの設定のため、開発者が直面している問題もあります.読者の友人がProxyを使用している場合は、コンテナの
次のテキストを上記のファイルにコピーし、保存して終了します.
<4>清cacheキャッシュ:
<5>APTソースを変更することができ、ネット上には多くの国内ソースがあり、変更方法を検索することができます.
APT Hash sum mismatchエラーのよくある解決方法は、このブログがよく書かれていることをまとめ、ブロガーが提供した考え方に感謝します.
以下は本人がdocker容器の中でapt-get updateを実行して間違った解決方法を報告することを解決します(多くの穴を踏んで、血がびしょびしょになって、やっと使いやすくなりました.):
root@33c5b2ae7edc:/# apt-get update
Err:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
Temporary failure resolving 'security.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu xenial-backports InRelease
Temporary failure resolving 'archive.ubuntu.com'
Reading package lists... Done
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-backports/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/xenial-security/InRelease Temporary failure resolving 'security.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
<1>まずdockerコンテナのDNSを構成する
cat/etc/resolv.confこのコマンドは、コンテナとシンクホストのDNS設定を表示します.コンテナとシンクホストのDNS設定は一致するはずです.
docker DNSの設定は、コンテナを起動するときにパラメータ--dns 8.8.8を追加することで設定できます(今回は有効)
または/etc/default/dockerのDNSパラメータで永続的に設定し、DOCKERを再起動して有効にします.
export http_proxy="http://10.1.9.100:808/" DOCKER_OPTS="--dns 210.83.210.155 --dns 127.0.1.1"
sudo service docker restart
<2>エージェントを構成するコンテナ/etc/apt/ディレクトリにapt.confファイルがあるかどうかを確認します.
Acquire::http::proxy "http://10.1.9.100:8080/";
Acquire::ftp::proxy "ftp://10.1.9.100:8080/";
Acquire::https::proxy "https://10.1.9.100:8080/";
ファイルがない場合は、ホスト内のapt.confファイルをコンテナ対応ディレクトリにコピーできます.
<3>プロキシサーバの設定:
会社のProxyの設定のため、開発者が直面している問題もあります.読者の友人がProxyを使用している場合は、コンテナの
/etc/apt/apt.conf.d/
ディレクトリの下に99 fixbadproxyという名前のファイルを作成してみてください.$ sudo gedit /etc/apt/apt.conf.d/99fixbadproxy
次のテキストを上記のファイルにコピーし、保存して終了します.
Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy true;
<4>清cacheキャッシュ:
$ sudo apt-get clean
$ sudo apt-get update --fix-missing
<5>APTソースを変更することができ、ネット上には多くの国内ソースがあり、変更方法を検索することができます.