Beim Versuch, eine Verbindung zu https://index.docker.io herzustellen, ist das Netzwerk abgelaufen


204

Ich habe Docker-Toolbox gerade installiert, als ich ihrer Webseite gefolgt bin

Ich begann mit Docker QuickStart Terminalund sehe folgendes

                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/


docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

bash-3.2$ 

Aber wenn ich versuche aufzutreten docker pull hello-world, sehe ich Folgendes

bash-3.2$ docker run hello-world
Unable to find image 'hello-world:latest' locally
Pulling repository docker.io/library/hello-world
Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/hello-world/images. You may want to check your internet connection or if you are behind a proxy.
bash-3.2$ 

Was ist los mit dir?

Antworten:


482

Ich hatte heute Morgen das gleiche Problem und das Folgende hat es für mich behoben:

$ docker-machine restart default      # Restart the environment
$ eval $(docker-machine env default)  # Refresh your environment settings

Es scheint, dass dies daran liegt, dass sich die virtuelle Docker-Maschine in einen seltsamen Zustand versetzt. Hier gibt es ein offenes Github-Problem


3
Dies hat es auch für mich behoben ... ich muss es jedoch bei jeder neuen Terminalsitzung erneut ausführen.
THX1137

17
Scheint zu passieren, wenn ich von meinem Arbeits-LAN zu meinem Heim-LAN wechsle. Möglicherweise ist der DNS von zu Hause aus nicht erreichbar.
Taco

10
Ich kann bestätigen, dass es kaputt geht, wenn ich das WLAN-Netzwerk ändere. Durch einen Neustart von Docker wird das Problem immer behoben.
Stephen Harrison

3
Perfekt, in meinem Fall musste ich einschließen docker-machine regenerate-certs default.
Rogeriopradoj

3
Heiliger Mist, jetzt macht alles Sinn. Das Wechseln der Netzwerkeinstellungen (WLAN, LAN, VPN, Heimnetzwerk, Arbeitsintranet, iPhone usw.) verursacht diese seltsamen Probleme.
Nils Petersohn

41

Ich habe Docker ohne die Toolbox unter Windows 10 installiert, daher muss die Version aktiviert sein, für die Hyper-V aktiviert sein muss.

Für Docker Version 1.12 musste ich in die Taskleiste gehen, mit der rechten Maustaste auf das Docker-Symbol klicken, Einstellungen -> Netzwerk auswählen und den DNS-Server auf fest setzen, damit der DNS-Server von Google unter verwendet wird 8.8.8.8 .

Sobald diese Einstellung geändert wurde, funktionierte es endlich.


Ich habe gerade auf fest umgestellt und dann wieder zurückgeschaltet und auf Anwenden geklickt. Musste es nicht auf fest lassen.
Philip Tinney

In meinem Fall habe ich den OpenDNS-Umbrella-Client installiert, der Ihre Netzwerkeinstellungen so festlegt, dass 127.0.0.1 für DNS verwendet wird. Docker scheint die Einstellungen von Ihrer Netzwerkkarte zu kopieren, also hat localhost seine eigenen DNS-Einstellungen vorgenommen, was natürlich nicht funktioniert.
Richard Benson

Arbeitete unter Windows 10
Master

16

Die einfachere Lösung besteht darin, den folgenden Eintrag in / etc / default / docker hinzuzufügen Datei einzufügen

export http_proxy = "http: // HOST: PORT /"

und starten Sie den Docker-Dienst neu

Service Docker neu starten


Es sollte ein "Beispiel" Proxy-Server sein, hatte nicht erwartet, dass es eine Verwirrung verursachen würde
pr-pal

2
Für Centos befindet es sich in der Datei / etc / sysconfig / docker.
Priyank Desai

Für MacOS habe ich die Proxy-Konfigurationen manuell in Docker Desktops "Einstellungen" -> "Proxies"
user1394

8

Update August 2016

Bei Verwendung von Docker für Mac (Version 1.12.0) wurden Probleme mit dem Formular festgestellt:

➜  docker pull node
Using default tag: latest
Pulling repository docker.io/library/node
Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/node/images. You may want to check your internet connection or if you are behind a proxy.`enter code here`

Dies wurde behoben, indem meine Einstellungen für das drahtlose MacBook Pro-Netzwerk so aktualisiert wurden, dass sie den folgenden DNS-Eintrag enthalten: 8.8.8.8

Weitere Informationen finden Sie in dieser (datierten) Ausgabe, die die hier gegebene Antwort lieferte.


7

Ich habe dieses Problem beim Ausführen von Docker auf meinem MAC (Host) mit Docker VM in VBOX 5.10 festgestellt. Es ist ein Netzwerkproblem. Die einfache Lösung besteht darin, dem VBOX-Image ein überbrücktes Netzwerk hinzuzufügen. Sie können die im Lieferumfang der VM enthaltene NAT-Konfiguration verwenden, müssen jedoch den SSH-Port von 50375 auf 2375 ändern.


1
Dies hat bei mir funktioniert (VirtualBox 5.0.10r104061 unter Windows 10 Pro). Beachten Sie für Neulinge, die neuer als ich sind, dass Sie docker-machine stop defaultdas Netzwerk im VirtualBox-Manager hinzufügen müssen docker-machine start default(ändern Sie den Standard nach Bedarf in den Namen Ihres Computers). Ich hatte zuerst @ Mark-Smiths einfachen Neustart + eval env-Vorschlag ausprobiert und das hat es für mich nicht getan.
David Brown

@dbaOnTap Du bist ein Glücksfall, mein Freund. Ich bin seit Tagen dabei. Unter Windows 10 Home mit VirtualBox Latest Test Build (5.0.15-10594) und der neuesten Docker-Toolbox (1.10.0) ist dies das einzige, was für mich funktioniert hat.
Cudacoder

4
sudo service docker stop
sudo service docker start

funktioniert bei mir..

irgendwie, sudo service docker restart es nicht funktioniert

(RHEL7)


4

Unter Windows 7 und wenn Sie glauben, dass Sie hinter Proxy stehen

  1. Melden Sie sich am Standardcomputer an

    $ docker-machine ssh default
    
  2. Profil aktualisieren, um die Proxy-Einstellungen zu aktualisieren

    docker@default:~$ sudo vi /var/lib/boot2docker/profile
    
  3. Fügen Sie gegebenenfalls von unten hinzu

    # replace with your office's proxy environment
    export"HTTP_PROXY=http://PROXY:PORT"
    export"HTTPS_PROXY=http://PROXY:PORT"
    
    # you can add more no_proxy with your environment.
    export"NO_PROXY=192.168.99.*,*.local,169.254/16,*.example.com,192.168.59.*"
    
  4. Ausgang

    docker@default:~$ exit
    
  5. Starten Sie die Docker-Maschine neu

    docker-machine restart default
    
  6. Umgebungseinstellungen aktualisieren

    eval $(docker-machine env default)
    

Die obigen Schritte wurden leicht angepasst, jedoch wie in der Anleitung zur Fehlerbehebung angegeben: https://docs.docker.com/toolbox/faqs/troubleshoot/#/update-varlibboot2dockerprofile-on-the-docker-machine


In meinem Fall funktioniert, aber ich habe entfernt export"HTTP_PROXY=http://PROXY:PORTund "... HTTPS_PROXY ...", weil auf das Netz direkt ohne Authentifizierung zugegriffen wird.
Muka

2

Ich bin gestern auf genau dasselbe Problem gestoßen, und keine der "populären" Antworten (wie das Korrigieren von DNS auf 8.8.8.8) hat bei mir funktioniert. Ich bin schließlich über diesen Link passiert, und das hat den Trick gemacht ... https://github.com/docker/for-win/issues/16

Zwischen Docker für Windows, Windows 10 und Hyper-V scheint während der Erstellung des virtuellen Netzwerkadapters ein Problem zu bestehen. Insbesondere könnten Sie zwei "vEthernet (DockerNAT)" - Netzwerkadapter erhalten. Überprüfen Sie dies mit Get-NetAdapter "vEthernet (DockerNAT)"(in einer erhöhten PowerShell-Konsole). Wenn das Ergebnis mehr als einen Adapter anzeigt, können Sie ihn deaktivieren und umbenennen mit:

$vmNetAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName DockerNAT
Get-NetAdapter "vEthernet (DockerNAT)" | ? { $_.DeviceID -ne $vmNetAdapter.DeviceID } | Disable-NetAdapter -Confirm:$False -PassThru | Rename-NetAdapter -NewName "OLD"

Öffnen Sie dann den Geräte-Manager und löschen Sie den deaktivierten Adapter (aus irgendeinem Grund können Sie dies von hier aus tun, jedoch nicht in der Ansicht "Netzwerk- und Freigabecenter-Adapter").


1

Ich gehe davon aus, dass Sie ein Netzwerkproblem haben. Stehst du hinter einem Proxy? Ist es möglich, dass die Verbindung zum docker.ioDocker-Benutzeragenten gefiltert oder blockiert wird?

Ich habe die Toolbox installiert und Ihren Test ausgeführt. Hier funktioniert es gut:

docker is configured to use the default machine with IP 192.168.99.101
For help getting started, check out the docs at https://docs.docker.com

bash-3.2$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

535020c3e8ad: Pull complete 
af340544ed62: Already exists 
library/hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Digest: sha256:d5fbd996e6562438f7ea5389d7da867fe58e04d581810e230df4cc073271ea52
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
 https://hub.docker.com

For more examples and ideas, visit:
 https://docs.docker.com/userguide/

bash-3.2$

Ich habe Docker-Toolbox neu installiert und jetzt scheint es zu funktionieren
Tagträumer

1
Ich habe die vorhandene Maschine, die ich mit der Option force erstellt habe, entfernt und neu erstellt - das funktioniert. docker-machine rm -f <machine_name>
user1189332

1

Unter Windows 10. Klicken Sie einfach mit der rechten Maustaste auf das Systray-Docker-Symbol -> Einstellungen ... -> Rest -> Docker neu starten


0

Ich hatte das gleiche Problem mit boot2docker und habe es behoben, indem ich es neu gestartet habe mit:

boot2docker restart

boot2docker ist veraltet
Ultrasaurus

0

Ich bin heute mit darauf gestoßen 1.10.1 und keine der vorhandenen Lösungen hat funktioniert. Ich habe versucht, Zertifikate neu zu starten, zu aktualisieren, neu zu generieren, ...

Mir ist aufgefallen, dass auf dem Computer viele Netzwerke erstellt wurden. Nach dem Entfernen mit:

docker network ls | grep bridge | awk '{print $1}' | xargs -n1 docker network rm

Der DNS begann wieder zu arbeiten.

Hinweis: Sie können Fehler in vordefinierten Netzwerken ignorieren


0

Wenn Sie sich hinter einem Proxy befinden, reicht es nicht aus, HTTP_PROXYund festzulegenHTTPS_PROXY env festzulegen. Sie sollten es während der Maschinenerstellung einstellen.

Paramer dafür ist --engine-env:

docker-machine create -d "virtualbox" --engine-env HTTP_PROXY=http://<PROXY>:<PORT> --engine-env HTTPS_PROXY=<PROXY>:<PORT> dev

0

In meinem Fall, wenn Docker unter Alpine Linux installiert wird, wird folgende Fehlermeldung angezeigt:

Beim Versuch, eine Verbindung zu https://index.docker.io/v1/repositories/library/ herzustellen, ist das Netzwerk abgelaufen .

Verwenden Sie das Skript hier: https://github.com/docker/docker/blob/master/contrib/download-frozen-image-v2.sh

Funktioniert. Es lädt das Bild mit Curl herunter und zeigt Ihnen dann, wie Sie es entpacken und vom Docker laden können.

Ich habe die oben genannten Methoden für statisches DNS unter 8.8.8.8 ausprobiert und ipv6 deaktiviert (ich habe die Proxy-Sache nicht verstanden), und keine davon hat bei mir funktioniert.

EDIT 08.09.2016:

Ich habe ursprünglich Dropbear anstelle von OpenSh verwendet. Die Neuinstallation von Alpine mit openssh hat das Problem behoben.

Das nächste Problem war der Fehler 'ApplyLayer-Exit-Status 1 stdout: stderr: chmod / bin / mount: Berechtigung verweigert' beim Ziehen.

Von (nixaid.com/grsec-in-docker/):

Um das Docker-Image zu erstellen, musste ich die folgenden grsec-Schutzfunktionen deaktivieren. Ändern Sie die Datei /etc/sysctl.d/grsec.conf wie folgt:

kernel.grsecurity.chroot_deny_chmod = 0 kernel.grsecurity.chroot_deny_mknod = 0 kernel.grsecurity.chroot_caps = 0 # in Bezug auf ein systemd-Paket / CAP_SETFCAP

im alpinen Fall aber

/etc/sysctl.d/00-alpine.conf

Neustart


Mir ist klar, dass dies hier nicht der Fall ist, aber für die Zukunft: Das Deaktivieren von IPv6 ist niemals eine richtige Antwort. Wenn das Deaktivieren von IPv6 jemals ein Problem "behebt", liegt das eigentliche Problem an einer anderen Stelle.
Stephen

0

Das Neustarten von Docker oder das Neuerstellen des Images hat nicht geholfen. Ich habe Windows ohne Erfolg neu gestartet.

Erstaunlicherweise curl https://index.docker.io/v1/repositories/library/hello-world/imagesbekam ich eine vollkommen gültige Antwort , als ich in den laufenden Container ssh'ed .

Ich habe die Docker Toolbox mit VirtualBox unter 64-Bit-Windows 10 Pro verwendet.

In meinem Fall bestand die Lösung darin, die alte Docker-Version zu deinstallieren und die neue zu installieren, die Hyper-V anstelle von VirtualBox verwendet.

Jetzt funktioniert Docker wieder.


0

Wenn Sie sich hinter einem Proxy befinden, verwenden Sie bitte die folgenden Befehle

sudo mkdir /etc/systemd/system/docker.service.d

sudo cd /etc/systemd/system/docker.service.d

sudo vi http-proxy.conf
[Service]

Environment=HTTP_PROXY=http://proxy-server-ip:port" "NO_PROXY=localhost,127.0.0.1"

sudo systemctl daemon-reload 

sudo systemctl show --property=Environment docker

sudo systemctl restart docker

Versuchen Sie dies, wenn Sie das neueste Ubuntu abrufen können

sudo docker run -it ubuntu bash

Bild kann ubuntu:latestlokal nicht gefunden werden

Neueste: Aus Bibliothek / Ubuntu ziehen b3e1c725a85f: Vollständig ziehen

4daad8bdde31: Vollständig ziehen

63fe8c0068a8: Fertig ziehen

4a70713c436f: Vollständig ziehen

bd842a2105a8: Vollständig ziehen

Verdauen:

sha256: 7a64bc9c8843b0a8c8b8a7e4715b7615e4e1b0d8ca3c7e7a76ec8250899c397a

Status: Heruntergeladenes neueres Bild für Ubuntu: Neueste

Es hat bei mir endlich geklappt :)


0

Ein weiteres Szenario: Wenn Ihr Docker-Netzwerkadapter deaktiviert ist, schlägt dieser Fehler fehl. Der Adapter heißt "vEthernet (DockerNAT)" oder ähnlich. Anscheinend ist dieser Adapter irgendwie am normalen Docker-Pull-Verhalten beteiligt. Aktivieren Sie es wieder, um das Problem zu lösen.


0

Erstellen Sie ein System-Dropdown-Verzeichnis für den Docker-Dienst:

$ sudo mkdir -p /etc/systemd/system/docker.service.d

Erstellen Sie eine Datei mit dem Namen /etc/systemd/system/docker.service.d/http-proxy.conf, die die HTTP_PROXYUmgebungsvariable hinzufügt :

[Bedienung]

Environment="HTTP_PROXY=http://proxy.example.com:80/"

Ich hoffe es hilft


-1

Unter Windows geschah dies, als ich von einem Arbeitsnetzwerk in ein Heimnetzwerk wechselte.

Um es zu lösen, führen Sie Folgendes aus:

  1. docker-machine stop
  2. docker-machine start
  3. docker-env
  4. "C:\Program Files\Docker Toolbox\docker-machine.exe" env | Invoke-Expression
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.