Das Docker-Repository verfügt über keine Release-Datei zum Ausführen des apt-get-Updates unter Ubuntu


87

Ich verwende Ubuntu 16.10 und habe kürzlich Docker (v1.12.4) mithilfe des Xenial-Builds installiert, indem ich den Anweisungen hier folge . Ich habe keine Probleme beim Erstellen von Containern, beim automatischen Neustart usw. festgestellt.

Jetzt erhalte ich jedoch jedes Mal, wenn ich apt-get update ausführe , die folgende Fehlermeldung:

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.

Ich habe versucht, das Problem zu beheben, indem ich den hier enthaltenen Ratschlägen gefolgt bin , und kann dieses Problem scheinbar nicht lösen.

Hat jemand dies schon einmal erlebt und behoben? Wenn ja, was ist erforderlich, um dies zu beheben?


1
Bitte sehen Sie, ob dies hilft - askubuntu.com/questions/768569/…
Rao

@ Rao, leider löst dies das Problem nicht. Ich erhalte immer noch die gleiche Fehlermeldung, nachdem ich den Schlüssel und den Eintrag in der Quellliste entfernt, apt-get update erneut ausgeführt und dann die Docker-Installationsschritte wiederholt habe.
Daniel Eagle

@ Rao, ich habe die Lösung herausgefunden und die Antwort hinzugefügt. Der Artikel, den Sie erwähnt haben, kann jedoch für andere von Vorteil sein, die über meine Frage stolpern, also +1. Prost.
Daniel Eagle

1
In meinem Fall haben die Antworten unten nicht geholfen. Mein Problem war, dass ich apt-cacher-ng verwendete, das keinen https-Verkehr übertrug. github.com/moby/moby/issues/22599#issuecomment-404675734
Jamshid

Antworten:


84

Unter Linux Mint funktionierten die offiziellen Anweisungen bei mir nicht. Ich musste gehen in /etc/apt/sources.list.d/additional-repositories.listund ändern serenazu xenial.


2
Nur eine Notiz, aus irgendeinem Grund gab es für mich eine Docker-Zeile mit trustyund eine andere mit serenain dieser Datei. Vielleicht habe ich vor einiger Zeit versucht, denselben Prozess zu durchlaufen, und ihn vergessen. Auf jeden Fall musste ich die trustyZeile löschen , sonst klagte sie über unlösbare Abhängigkeiten.
Lobati

3
Vielen Dank für die Referenz "directory.list.d". Ubuntu xenial Problem mit "sudo rm /etc/apt/sources.list.d/docker*" behoben. Jetzt funktioniert apt-get update endlich.
Nine9five

2
Das gleiche gilt für Debian: Ersetzen Sie "Debian 10 Stable" durch "Debian Stretch Stable" in der Datei "/etc/apt/sources.list.d/docker.list" und es sollte funktionieren.
Peschanko

Ich musste meine aufbionic
jpthesolver2

72

Bei Linux Mint wird auf dieses Problem tatsächlich auf der Docker-Website verwiesen :

Hinweis: Der folgende lsb_release -csUnterbefehl gibt den Namen Ihrer Ubuntu-Distribution zurück, z xenial. In einer Distribution wie Linux Mint müssen Sie manchmal $(lsb_release -cs)zu Ihrer übergeordneten Ubuntu-Distribution wechseln . Wenn Sie beispielsweise Linux Mint Rafaela verwenden, können Sie vertrauenswürdig verwenden.

amd64:

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

Der lsb_release -csBefehl gibt ein Repository an, für das Docker kein vorbereitetes Paket hat. Sie müssen es in xenial ändern.

Der richtige Befehl für Linux Mint 18, der auf Ubuntu 16.04 Xenial basiert, lautet

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

1
Der von Ihnen angegebene Befehl ist der gleiche wie der auf der Docker-Site vorhandene. Allerdings funktioniert es bei mir unter Ubuntu 16.04 nicht. Der in generierte Eintrag sources.listlautet: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stableAber immer noch das gleiche Problem. Ich wünschte, jemand könnte erklären, warum es nicht Releasedrinnen finden kann https://download.docker.com/linux/ubuntu/dists/xenial/stable/binary-amd64/. Traurig: Nach so vielen Jahren mit Ubuntu kann ich immer noch nicht herausfinden, wie die Dinge mit Repository-Pfaden funktionieren.
Marinos An

Dies löste meine Probleme, die Dinge auch in der neuen WLinux-Distribution in Bewegung zu bringen.
rainabba

22

Elliot Beach ist richtig. Danke Elliot.

Hier ist der Code aus meinem Kern .

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
Führen Sie diese Befehle sorgfältig aus, wenn Sie xenial nicht ausführen. Dieser Befehl wäre sichereradd-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Spuder

In einigen Fällen (z. B. Mint) ist die lsb_release -csRückgabe von Retouren, für taradie keine unterstützte Version so spezifisch überschrieben wurde, xenialwie gezeigt (oder vertrauenswürdig).
Strixy

Der Benutzer, der früher als Elliott Beach bekannt war, wird als Warlike Chimpanzee
Warlike Chimpanzee am

Ihr Inhalt behebt das Problem "E: Paket 'containerd.io' hat keinen Installationskandidaten" mit Kubuntu eoan. Einige Leute haben es mit Bionic gelöst, aber es hat bei mir nicht funktioniert, nachdem Ihr Kern mit Xenial gearbeitet hat. Das Problem tritt bei der Verwendung auf, $(lsb_release -cs)da es nicht vollständig unterstützt wird. Andere berichten, dass sie 4 Monate lang ohne Probleme einen solchen "Fehlkonfigurations" -Hack verwendet haben und zählen ( stackoverflow.com/questions/60274857/… )
Leamsi,

17

Wie im offiziellen Docker-Dokument ebenfalls vorgeschlagen. Versuchen Sie Folgendes:

  • sudo vi /etc/apt/sources.list

Entfernen / kommentieren Sie dann einen ( deb [arch=amd64] https://download.docker.com/linux/ubuntu/ xenial stable) solchen Eintrag in den letzten Zeilen der Datei.

Führen Sie dann im Terminal diesen Befehl aus:

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

  • sudo apt-get update

In meinem Fall hat es funktioniert.


10

Ich habe hier einen interessanten Beitrag von Ikraider gesehen, der mein Problem gelöst hat: https://github.com/docker/docker/issues/22599

Die Anweisungen auf der Website sind falsch. Folgendes funktioniert in 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

4

Ich hatte ein ähnliches Problem mit Linux Mint. Ich habe herausgefunden, dass die Debian-Version Folgendes verwendet:

$ cat /etc/debian_version buster/sid

dann ersetzt Debian-Version in

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

4

Linux Mint 20 Uljana Benutzer ändern müssen „Uljana“ zu „Bionic“ in

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

wie so:

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

4

Warnung: Führen Sie die folgenden Schritte auf eigenes Risiko aus. Möglicherweise erhalten Sie unterschiedliche Ergebnisse, wie in den Kommentaren angegeben. Bitte seien Sie vorsichtig und führen Sie vorher eine vollständige Sicherung durch.

Unten finden Sie eine Liste der Schritte zur Lösung des Problems:

  1. Docker entfernen (dadurch werden keine Bilder, Container, Volumes oder benutzerdefinierten Konfigurationsdateien gelöscht):

    sudo apt-get purge docker-engine

  2. Entfernen Sie den Docker-Schlüssel:

    sudo apt-key del 58118E89F3A912897C070ADBF76221572C52609D

  3. Löschen Sie die Datei docker.list:

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

  4. Löschen Sie passende Cache-Dateien manuell:

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

  5. Löschen Sie apt-transport-https und ca-Zertifikate :

    sudo apt-get purge apt-transport-https ca-zertifikate

  6. Apt reinigen und Autoremove durchführen:

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

  7. Starten Sie Ubuntu neu:

    sudo neu starten

  8. Führen Sie das apt-get-Update aus:

    sudo apt-get update

  9. Installieren Sie apt-transport-https und ca-certificates erneut:

    sudo apt-get installiere apt-transport-https ca-Zertifikate

  10. Fügen Sie den passenden Schlüssel hinzu:

> sudo apt-key adv \
       --keyserver hkp://ha.pool.sks-keyservers.net:80 \
       --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. Fügen Sie die Datei docker.list erneut hinzu:
> echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" |
sudo tee /etc/apt/sources.list.d/docker.list
  1. Führen Sie das apt-get-Update aus:
> sudo apt-get update
  1. Installieren Sie Docker:
> sudo apt-get install docker-engine

Zugegeben, es gibt viele Variablen und Ihre Ergebnisse können variieren. Diese Schritte decken jedoch so viele Bereiche wie möglich ab, um sicherzustellen, dass potenzielle Problemstellen beseitigt werden, sodass die Erfolgswahrscheinlichkeit höher ist.

Update 06.07.2017

Es scheint, dass neuere Versionen von Docker einen anderen Installationsprozess verwenden, der viele dieser Probleme beseitigen sollte. Schauen Sie sich unbedingt https://docs.docker.com/engine/installation/linux/ubuntu/ an .


Nach dem Neustart wird mein Anmeldebildschirm in Linux Mint
Sathishkumar Rakkiasamy

3
Laufen: Sudo Apt-Get Purge Apt-Transport-https Ca-Zertifikate ist eine schreckliche Idee, ich denke, ich habe gerade mein Betriebssystem vermasselt: C
RicardoE

@ RicardoE, nachdem das ausgeführt wurde, was ist mit Ihrem System los?
Daniel Eagle

1
Ich benutze Linux Mint und es deinstallierte im Grunde alle Zimt Sachen und einige andere Software / Pakete wie Google Chrome
RicardoE

1
Ich installiere alles neu mit und überprüfe die Liste in: /var/log/apt/history.log
RicardoE

3

Ich hatte auch ein ähnliches Problem. Jemand könnte hilfreich finden, was für mich funktioniert hat.

Auf dem Computer wird Ubuntu 16.04 ausgeführt und Docker CE. Nachdem ich die hier bereitgestellten Antworten und Links durchgesehen hatte, insbesondere den Link von der Docker-Website von Elliot Beach, öffnete ich meine /etc/apt/sources.list und untersuchte sie.

Die Datei hatte beide deb [arch=amd64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stableund deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable.

Da der zweite benötigt wurde, habe ich einfach den ersten auskommentiert, das Dokument gespeichert und jetzt ist das Problem behoben. Als Test ging ich zurück in dasselbe Dokument, entfernte das Kommentarzeichen und lief sudo apt-get updateerneut. Das Problem kehrte zurück, als ich das tat.

Um es noch einmal zusammenzufassen: Ich hatte nicht nur den Namen meiner übergeordneten Ubuntu-Distribution, wie auf der Docker-Website angegeben, sondern auch die noch ausstehende Zeile (lsb_release -cs) auskommentiert.


Unter Ubuntu 18.10 habe ich diese Zeile auskommentiert: # deb [arch = amd64] download.docker.com/linux/ubuntu kosmischer Stall
Sergei G


1

Ich habe immer noch das gleiche Problem. Keine der obigen Antworten scheint es zu lösen. Ich habe Ubuntu 16.04 und folge den unter https://docs.docker.com/install/linux/docker-ce/ubuntu/ beschriebenen Schritten.

Ich vermute, es hängt mit einem apt-getFehler in Bezug auf https zusammen. Die Informationen, von denen gedruckt wird, apt-getsind irreführend.

Ich denke, das Failed to fetch..kann auch übersetzt werden als:problem accessing resource from within an https connection

Wie bin ich zu diesem Schluss gekommen:

Zunächst stehe ich hinter einem Unternehmens-Proxy, daher habe ich die folgende Konfiguration festgelegt:

/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;
};

Ich habe die folgenden Tests mit unterschiedlichen Einträgen in durchgeführt sources.list

Testeintrag 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.

Fehler

Testeintrag 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

Erfolg

Testeintrag 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.

Fehler


In den oben genannten Fällen war die URL, auf die apt-get Failed to fetchund auch die Release Datei angewendet wurden, tatsächlich über browser/ wget/ curlmit derselben Proxy-Konfiguration zugänglich .
Die Tatsache, dass apt-getnur mit der http-Reverse-Proxy-URL gearbeitet wurde, impliziert, dass beim Zugriff auf Ressourcen über eine https-Verbindung ein Problem auftritt .
Ich weiß nicht, was dieses Problem ist, apt-getsollte aber eine informativere Nachricht aptanzeigen ( ist noch weniger ausführlich).

Hinweis: Wiresharking-Fall 1 zeigte, dass der Proxy CONNECTerfolgreich war und kein RST gesendet wurde, aber die Dateien konnten natürlich nicht gelesen werden.


0

Dies hat bei LinuxMint 19 für mich funktioniert.

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

Beste Überprüfung für dieses Problem: (Wenn Sie hinter Proxy stehen), (getestet auf Ubuntu 18.04), (funktioniert auch auf anderen Ubuntu), (meistens Fehler in: https_proxy = "http://192.168.0.251:808/)

  1. Überprüfen Sie diese Dateien:

    #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 stabiles Repo hinzufügen

    #sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
    
  3. Führen Sie das apt-get-Update aus:

    #sudo apt-get update
    
  4. Überprüfen Sie Docker CE

    #apt-cache policy docker-ce
    
  5. Installieren Sie Docker

    #sudo apt-get install docker-ce
    
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.