it-swarm.com.de

Docker Repository hat keine Release-Datei zum Ausführen von apt-get update unter Ubuntu

Ich verwende Ubuntu 16.10 und habe kürzlich Docker (v1.12.4) mit dem Xenial-Build installiert. Befolgen Sie dazu die Anweisungen hier . Ich habe keine Probleme beim Erstellen von Containern, beim automatischen Neustart usw. festgestellt.

Bei jedem Ausführen von apt-get update wird jedoch die folgende Fehlermeldung angezeigt:

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 Rat befolgt habe hier und kann dieses Problem anscheinend nicht lösen.

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

62
Daniel Eagle

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

66
Salami

Bei Linux Mint wird auf dieses Problem in der Docker-Website verwiesen :

Hinweis: Der folgende Unterbefehl lsb_release -cs gibt den Namen Ihrer Ubuntu-Distribution zurück, z. B. xenial. In einer Distribution wie Linux Mint müssen Sie manchmal $ (lsb_release -cs) in Ihre übergeordnete Ubuntu-Distribution ändern. Wenn Sie beispielsweise Linux Mint Rafaela verwenden, können Sie die Option "Vertrauenswürdig" verwenden. AMD64:

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

Das lsb_release -cs Befehl gibt ein Repository an, für das Docker kein vorbereitetes Paket hat - Sie müssen es auf xenial ändern.

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

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

Elliot Beach ist richtig. Danke Elliot.

Hier ist der Code aus meinem 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
14

Wie auch im offiziellen Docker-Dokument vorgeschlagen. Versuchen Sie Folgendes auszuführen:

  • Sudo vi /etc/apt/sources.list

Dann entferne/kommentiere alle (deb [Arch=AMD64] https://download.docker.com/linux/ubuntu/ xenial stable) solcher Eintrag in den letzten Zeilen der Datei.

Führen Sie dann im Terminal den folgenden 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.

8
parneeti sood

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. In 16.04 funktioniert Folgendes:

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

Nachfolgend finden Sie eine Liste der Schritte, mit denen das Problem behoben werden kann:

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

    Sudo apt-get Spülung Docker-Motor

  2. Entfernen Sie den passenden 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. Apt-Cache-Dateien manuell löschen:

    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 apt-transport-https ca-Zertifikate bereinigen

  6. Reinigen Sie apt und führen Sie eine automatische Entfernung durch:

    Sudo apt-get clean && Sudo apt-get autoremove

  7. Ubuntu neu starten:

    Sudo neu starten

  8. Führen Sie 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

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

  12. Führen Sie apt-get update aus:

    Sudo apt-get update

  13. Installieren Sie Docker:

    Sudo apt-get Docker-Engine installieren

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, wodurch viele dieser Probleme behoben werden sollten. Lesen Sie unbedingt https://docs.docker.com/engine/installation/linux/ubuntu/ .

6
Daniel Eagle

Das Editieren der Datei /etc/apt/sources.list.d/additional-repositories.list Und das Hinzufügen von deb [Arch=AMD64] https://download.docker.com/linux/ubuntu xenial stable Funktionierte für mich. Dieser Beitrag war sehr hilfreich https://github.com/typora/typora-issues/issues/2065

2
PrimeTime

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

Maschine läuft Ubuntu 16.04 und hat Docker CE. Nachdem ich die Antworten und Links hier durchgesehen hatte, insbesondere den Link von der Docker-Website von Elliot Beach, öffnete ich meine /etc/apt/sources.list und überprüfte sie.

Die Datei hatte sowohl deb [Arch=AMD64] https://download.docker.com/linux/ubuntu (lsb_release -cs) stable als auch 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 das gleiche Dokument, entfernte das Kommentarzeichen und ließ Sudo apt-get update nochmal. Die Ausgabe kam 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 Zeile, die noch enthält (lsb_release -cs), auskommentiert.

2
Simeon

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

Ich vermute, dass es sich um einen apt-get Fehler in Bezug auf https handelt. Die von apt-get gedruckten Informationen sind irreführend.

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

Wie bin ich zu folgendem Schluss gekommen:

Zuallererst bin ich hinter einem Corporate Proxy und habe folgende Konfiguration vorgenommen:

/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 verschiedenen Einträgen in sources.list durchgeführt

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.

Misserfolg

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.

Misserfolg


In den oben genannten Fällen war die URL, die Failed to fetch und auch die Datei Release abruft, tatsächlich über browser/wget/curl zugänglich. mit der gleichen Proxy-Konfiguration.
Die Tatsache, dass apt-get nur mit der http-Reverse-Proxy-URL funktioniert hat, impliziert, dass es einige Probleme beim Zugriff auf Ressourcen über eine https-Verbindung gibt.
Ich weiß nicht, was dieses Problem ist, aber apt-get sollte eine informativere Meldung anzeigen (apt ist noch weniger ausführlich).

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

1
Marinos An