DockerリポジトリにUbuntuでapt-getupdateを実行する際のリリースファイルがありません


94

私はUbuntu16.10を使用しており、Xenialビルドを使用して最近インストールしたDocker(v1.12.4)を、ここにある手順に従って使用しています。コンテナの作成、コンテナの自動再起動の確認など、問題は発生していません。

ただし、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.

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

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


1
これが役立つかどうかを確認してください -askubuntu.com/questions/768569/…–
Rao

@Rao、残念ながらこれは問題を解決しません。キーとソースリストエントリを削除し、apt-get updateを再度実行してから、Dockerのインストール手順を繰り返しても、同じエラーメッセージが表示されます。
ダニエルイーグル

@Rao、私は解決策を見つけて答えを追加しました。しかし、あなたが言及した記事は、私の質問に出くわした他の人にとって有益かもしれないので+1。乾杯。
ダニエルイーグル

1
私の場合、以下の答えは役に立ちませんでした。私の問題は、httpsトラフィックをプロキシしていないapt-cacher-ngを使用していたことでした。github.com/moby/moby/issues/22599#issuecomment-404675734
ジャムシード

回答:


86

Linux Mintでは、公式の指示は私には機能しませんでした。に入っ/etc/apt/sources.list.d/additional-repositories.listてに変更serenaする必要がありましたxenial


2
注意点として、何らかの理由trustyserena、そのファイルにdockerlineとwithがありました。たぶん、私はこの同じプロセスをしばらく前に経験しようとして、それを忘れていました。とにかく、私はそのtrusty行を削除しなければなりませんでした、さもなければそれは解決できない依存関係について不平を言いました。
lobati 2018年

3
ディレクトリsources.list.dリファレンスをありがとう。「sudorm / etc / apt / sources.list.d / docker *」に関するUbuntuのxenialの問題を修正しました。これで、apt-getアップデートがついに機能します。
nine9five

2
Debianの場合も同じです。ファイル「/etc/apt/sources.list.d/docker.list」の「debian10stable」を「debianstretchstable」に置き換えると機能するはずです。
peschanko

私は、に地雷を変更しなければならなかったbionic
jpthesolver2

74

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

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

amd64:

$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

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

Ubuntu 16.04Xenialに基づくLinuxMint18の正しいコマンドは次のとおりです。

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   xenial \
   stable"

1
指定したコマンドは、Dockerサイトにあるコマンドと同じです。ただし、ubuntu16.04では機能しません。で生成されるエントリsources.listは次のとおりです。 deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableしかし、それでも同じ問題です。なぜRelease内部が見つからないのか誰かに説明してもらいたいhttps://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/。悲しい:ubuntuを何年も使用した後でも、リポジトリパスでどのように機能するのか理解できません。
マリノス

これにより、新しいWLinuxディストリビューションでも問題が解決しました。
rainabba 2018

23

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

これが私の要点からのコードです。

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

2
xenialを実行していない場合は、これらのコマンドを慎重に実行してください。このコマンドの方が安全ですadd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
spuder 2018年

場合によっては(つまり、Mint)、サポートされているリリースがないため、示されている(または信頼できる)ように具体的にオーバーライドするlsb_release -csリターンtaraxenial有用な回避策です。
Strixy 2018

正式にはエリオットビーチとして知られているユーザーは、今後は好戦的なチンパンジーと呼ばれます
好戦的なチンパンジー

あなたの要点は、Kubuntueoanの「E:パッケージ 'containerd.io'にインストール候補がありません」の問題を修正します。一部の人々はバイオニックでそれを解決しましたが、ゼニアルであなたの要点に従って、それは私にとってはうまくいきませんでした。$(lsb_release -cs)完全にはサポートされていないため、使用すると問題が発生します。その他には、4ヶ月とカウント(のために何の問題もなく、このようなA「設定ミス」ハックを使用してレポートstackoverflow.com/questions/60274857/...
Leamsi

17

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

  • 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

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


10

私の問題を解決した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

9

Linuxのミント20 Ulyanaユーザーが変更する必要がある「ulyanaを」「バイオニック」

/etc/apt/sources.list.d/additional-repositories.list

そのようです:

deb [arch=amd64] https://download.docker.com/linux/ubuntu    bionic    stable

4

Linux mintで同様の問題に直面していましたが、Debianバージョンを使用して

$ cat /etc/debian_version buster/sid

その後、Debianバージョンを置き換えました

$ sudo vi /etc/apt/sources.list.d/additional-repositories.list
deb [arch=amd64] https://download.docker.com/linux/debian    buster    stable

4

警告:以下の手順は自己責任で使用してください。コメントに示されているように、異なる結果を受け取る場合があります。これを行う前に、注意して完全バックアップをとってください。

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

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

    sudoapt-getパージdocker-engine

  2. Dockeraptキーを削除します。

    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-httpsca-certificatesを削除します

    sudoapt-getパージapt-transport-httpsca-certificates

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

    sudo apt-get clean && sudo apt-get autoremove

  7. Ubuntuを再起動します:

    sudoリブート

  8. apt-getupdateを実行します。

    sudo apt-get update

  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
  1. docker.listファイルを再度追加します。
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. apt-getupdateを実行します。
> sudo apt-get update
  1. Dockerをインストールします。
> sudo apt-get install docker-engine

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

2017年7月6日更新

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


再起動を実行した後、ログイン画面がLinux Mintに表示されます
Sathishkumar Rakkiasamy 2018

4
実行中:sudo apt-get purge apt-transport-https ca-certificatesはひどい考えです、私はちょうど私のOSを台無しにしたと思います:C
RicardoE 2018年

@RicardoE、それを実行した後、あなたのシステムはどうなっているのですか?
ダニエルイーグル

1
Linuxのミントを使用して、そしてそれは基本的にすべてのシナモンのものとグーグルクロームのようないくつかの他のsoftare /パッケージをアンインストールイム
RicardoE

1
/var/log/apt/history.log
RicardoE 2018年

3

私も同様の問題を抱えていました。誰かが私のために働いたことが役に立つと思うかもしれません。

マシンはUbuntu16.04を実行しており、DockerCEを搭載しています。ここに記載されている回答とリンク、特にElliotBeachから提供されたDockerWebサイトからのリンクを確認した後、/ etc / apt /sources.listを開いて調べました。

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

2つ目は必要だったので、1つ目をコメントアウトしてドキュメントを保存すると、問題が修正されました。テストとして、同じドキュメントに戻り、コメント記号を削除して、sudo apt-get update再度実行しました。私がそれをしたときに問題が戻った。

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


#DEB [AMD64アーチ=]:Ubuntuの18.10に私は、この行コメントアウトdownload.docker.com/linux/ubuntu宇宙安定
セルゲイG


1

私はまだ同じ問題を抱えています。上記の答えはどれもそれを解決していないようです。私はubuntu16.04を持っており、https: //docs.docker.com/install/linux/docker-ce/ubuntu/で説明されている手順に従います

apt-gethttpsに関するバグに関係しているのではないかと思います。によって印刷されている情報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.

失敗


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

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


0

これがLinuxMint19で私のために働いたものです。

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-ce docker-ce-cli containerd.io


-1

この問題の最善のチェ​​ック:(プロキシの背後にいる場合)、(ubuntu 18.04でテスト済み)、(他のubuntuでも機能します)、(主にエラー:https_proxy = "http://192.168.0.251:808/)

  1. これらのファイルを確認してください。

    #sudo cat /etc/environment :
    http_proxy="http://192.168.0.251:808/"
    https_proxy="http://192.168.0.251:808/"
    ftp_proxy="ftp://192.168.0.251:808/"
    socks_proxy="socks://192.168.0.251:808/"
    #sudo cat /etc/apt/apt.conf :
    Acquire::http::proxy "http://192.168.0.251:808/";
    Acquire::https::proxy "http://192.168.0.251:808/";
    Acquire::ftp::proxy "ftp://192.168.0.251:808/";
    Acquire::socks::proxy "socks://192.168.0.251:808/";
    
  2. Dockerの安定したリポジトリを追加する

    #sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
    
  3. apt-getupdateを実行します。

    #sudo apt-get update
    
  4. DockerCEを確認する

    #apt-cache policy docker-ce
    
  5. Dockerをインストールする

    #sudo apt-get install docker-ce
    
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.