web-dev-qa-db-ja.com

Ubuntuでapt-get updateを実行すると、Dockerリポジトリにリリースファイルがありません

Ubuntu 16.10を使用しており、Xenialビルドを使用してDocker(v1.12.4)を最近インストールしました here の指示に従ってインストールしました。コンテナの作成、コンテナの自動再起動などの問題は発生していません。

ただし、現在、apt-get updateを実行するたびに、次のエラーメッセージが表示されます。

W: The repository 'https://apt.dockerproject.org/repo ubuntu-xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://apt.dockerproject.org/repo/dists/ubuntu-xenial/main/binary-AMD64/Packages
E: Some index files failed to download. They have been ignored, or old ones used instead.

私は here のアドバイスに従って問題を解決しようとしましたが、この問題を解決できないようです。

誰もこれに遭遇して修正しましたか?もしそうなら、これを解決するために何が必要ですか?

56
Daniel Eagle

Linuxミントでは、公式の指示はうまくいきませんでした。 /etc/apt/sources.list.d/additional-repositories.listに移動し、serenaxenialに変更する必要がありました。

64
Salami

Linux Mintの場合、この問題は実際には Docker Webサイト で参照されています:

注:以下のlsb_release -csサブコマンドは、xenialなどのUbuntuディストリビューションの名前を返します。 Linux Mintのようなディストリビューションでは、$(lsb_release -cs)を親Ubuntuディストリビューションに変更しなければならない場合があります。たとえば、Linux Mint Rafaelaを使用している場合、trustyを使用できます。 AMD64:

$ Sudo add-apt-repository\"deb [Arch = AMD64] https://download.docker.com/linux/ubunt \$(lsb_release -cs)\
安定」

lsb_release -csコマンドは、Dockerに準備されたパッケージがないリポジトリを提供します-xenialに変更する必要があります。

buntu 16.04 Xenialに基づくLinux Mint 18 の正しいコマンドは

Sudo add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu \
   xenial \
   stable"
54

エリオットビーチは正しいです。エリオットに感謝します。

ここに私の Gist からのコードがあります。

Sudo apt-get remove docker docker-engine docker.io

Sudo apt-get update

Sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | Sudo apt-key add -

Sudo apt-key fingerprint 0EBFCD88

Sudo add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu \
xenial \
stable"

Sudo apt-get update

Sudo apt-get install docker-ce

Sudo docker run hello-world
12

私の問題を解決したIkraiderからの興味深い投稿を見ました: https://github.com/docker/docker/issues/22599

ウェブサイトの指示が間違っています。16.04で機能するものを次に示します。

curl -s https://yum.dockerproject.org/gpg | Sudo apt-key add
apt-key fingerprint 58118E89F3A912897C070ADBF76221572C52609D
Sudo add-apt-repository "deb https://apt.dockerproject.org/repo ubuntu-$(lsb_release -cs) main"
Sudo apt-get update
Sudo apt-get install docker-engine=1.13.0-0~ubuntu-xenial
8
Nicolas D

公式ドッカードキュメントでも提案されているように。これを実行してみてください:

  • Sudo vi /etc/apt/sources.list

次に、ファイルの最後の行でそのようなエントリ(deb [Arch=AMD64] https://download.docker.com/linux/ubuntu/ xenial stable)を削除/コメントします。

次に、ターミナルで次のコマンドを実行します。

  • Sudo add-apt-repository "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu/ bionic stable"

  • Sudo apt-get update

私の場合はうまくいきました。

7
parneeti sood

以下は、問題を解決するために使用される手順のリストです。

  1. Dockerを削除します(これにより、イメージ、コンテナー、ボリューム、またはカスタマイズされた構成ファイルは削除されません):

    Sudo apt-get purge docker-engine

  2. Docker aptキーを削除します。

    Sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Docker.listファイルを削除します。

    Sudo rm /etc/apt/sources.list.d/docker.list

  4. Aptキャッシュファイルを手動で削除します。

    Sudo rm /var/lib/apt/lists/apt.dockerproject.org_repo_dists_ubuntu-xenial_*

  5. 削除apt-transport-httpsおよびca-certificates

    Sudo apt-get purge apt-transport-https ca-certificates

  6. Aptをクリーンアップして自動削除を実行します。

    須藤apt-get clean &&須藤apt-get autoremove

  7. Ubuntuを再起動します。

    須藤リブート

  8. Apt-get updateを実行します。

    須藤apt-getアップデート

  9. Apt-transport-httpsとca-certificatesを再度インストールします。

    Sudo apt-get install apt-transport-https ca-certificates

  10. Aptキーを追加します。

    Sudo apt-key adv\--keyserver hkp://ha.pool.sks-keyservers.net:80\--recv-keys 58118E89F3A912897C070ADBF76221572C52609D

  11. Docker.listファイルを再度追加します。

    echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |須藤ティー/etc/apt/sources.list.d/docker.list

  12. Apt-get updateを実行します。

    須藤apt-getアップデート

  13. Dockerをインストールします。

    Sudo apt-get install docker-engine

確かに、多くの変数があり、結果は異なる場合があります。ただし、これらの手順は可能な限り多くの領域をカバーし、潜在的な問題点を確実にスクラブして、成功の可能性を高めます。

2017年7月6日更新

Dockerの新しいバージョンは、これらの問題の多くを解消する別のインストールプロセスを使用しているようです。必ずチェックアウトしてください https://docs.docker.com/engine/installation/linux/ubuntu/

6
Daniel Eagle

私はまだ同じ問題を抱えています。上記の答えはどれもそれを解決するようには見えません。 ubuntu 16.04があり、 https://docs.docker.com/install/linux/docker-ce/ubuntu/ で説明されている手順に従います

Httpsに関するapt-getバグに関連していると思われます。 apt-getによって出力される情報は、誤解を招くようなものです。

Failed to fetch..は次のように翻訳することもできると思います:problem accessing resource from within an https connection

どのようにしてこの結論に達しましたか:

まず、企業プロキシの背後にいるため、次の構成を設定しました。

/etc/apt/apt.conf

Acquire::http::proxy "http://squidproxy:8080/";
Acquire::https::proxy "http://squidproxy:8080/";
Acquire::ftp::proxy "ftp://squidproxy:8080/";

Acquire::https::CaInfo     "/etc/ssl/certs/ca-certificates.pem";

/etc/apt/apt.conf.d/99proxy

Acquire::http::Proxy {
    localhost DIRECT;
    localhost:9020 DIRECT;
    localhost:9021 DIRECT;
};

sources.listの異なるエントリで次のテストを実行しました

テストエントリ1:

deb [Arch=AMD64] https://download.docker.com/linux/ubuntu xenial stable

Sudo apt-get update

W: The repository 'https://download.docker.com/linux/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration     details.
E: Failed to fetch     https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-AMD64/Packages  
E: Some index files failed to download. They have been ignored, or old ones used instead.

失敗

テストエントリ2:

deb [Arch=AMD64] http://localhost:9020/linux/ubuntu xenial stable

/etc/Apache2/sites-enabled/apt-proxy.conf

# http to https reverse proxy configuration.
Listen 9020
<VirtualHost *:9020>
SSLProxyEngine On
# pass from squid proxy
ProxyRemote https://download.docker.com/ http://squidproxy:8080
ProxyPass / https://download.docker.com/
ProxyPassReverse / https://download.docker.com/
ErrorLog ${Apache_LOG_DIR}/apt-proxy-error.log
CustomLog ${Apache_LOG_DIR}/apt-proxy-access.log combined
</VirtualHost>

Sudo apt-get update

Hit:1 ..
Hit:2 ..
  ...                                                              
Hit:7 http://localhost:9020/linux/ubuntu xenial InRelease                
Get:8 ...
Fetched 323 kB in 0s (419 kB/s)
Reading package lists... Done

成功

テストエントリ3:

deb [Arch=AMD64] https://localhost:9021/linux/ubuntu xenial stable

/etc/Apache2/sites-enabled/apt-proxy.conf

# https to https revere proxy
Listen 9021
<VirtualHost *:9021>
# serve on https
SSLEngine on
SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLProxyEngine On
# pass from squid proxy
ProxyRemote https://download.docker.com/ http://squidproxy:8080
ProxyPass / https://download.docker.com/
ProxyPassReverse / https://download.docker.com/
ErrorLog ${Apache_LOG_DIR}/apt-proxy-error.log
CustomLog ${Apache_LOG_DIR}/apt-proxy-access.log combined
</VirtualHost>

Sudo apt-get update

W: The repository 'https://localhost:9021/linux/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch https://localhost:9021/linux/ubuntu/dists/xenial/stable/binary-AMD64/Packages  
E: Some index files failed to download. They have been ignored, or old ones used instead.

失敗


上記の場合、Failed to fetchおよびReleaseファイルをapt-getするURLは、同じプロキシ構成を使用してbrowser/wget/curlから実際にアクセスできました。
apt-getはhttpリバースプロキシURLでのみ機能したという事実は、いくつかのhttps接続内からリソースへのアクセスの問題があることを意味します。
この問題が何なのかわかりませんが、apt-getはより有益なメッセージを表示するはずです(aptはさらに冗長です)。

注:wiresharkingケース1は、プロキシCONNECTが成功し、RSTが送信されなかったことを示しましたが、もちろんファイルを読み取ることができませんでした。

1
Marinos An

同様の問題もありました。誰かが私にとって役に立つものを見つけるかもしれません。

マシンはUbuntu 16.04を実行しており、Docker CEを搭載しています。ここで提供される回答とリンク、特にElliot Beachが提供するDocker Webサイトからのリンクを調べた後、/ etc/apt/sources.listを開いて調べました。

ファイルにはdeb [Arch=AMD64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stabledeb [Arch=AMD64] https://download.docker.com/linux/ubuntu xenial stableの両方が含まれていました。

2番目のものが必要なものだったので、最初のものをコメントアウトし、ドキュメントを保存しただけで、問題は修正されました。テストとして、同じドキュメントに戻り、コメント記号を削除して、もう一度Sudo apt-get updateを実行しました。私がそれをしたときに問題が返されました。

要約すると、Docker Webサイトに記載されているとおり、Ubuntuの親ディストリビューション名があっただけでなく、(lsb_release -cs)がまだ含まれている行もコメントアウトされました。

1
Simeon