2016-05-06 14 views
20

Ich habe ein wiederkehrendes Problem mit Docker Machine - alle paar Tage entscheidet es sich Timeout und ich kann es nicht wiederherstellen, sobald dies passiert.Docker Maschine Timeout - wie zu beheben, ohne die Maschine zu zerstören?

Beispiel

docker-machine ls 
NAME  ACTIVE DRIVER  STATE  URL SWARM DOCKER ERRORS 
default   virtualbox Timeout 

Umwelt Info

uname -a     Darwin ColeyMBPR 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64 
docker version   1.11.0 
docker-machine version 0.7.0 
vboxmanage --version  5.0.20r106931 

Versuchte Lösungen

ich die folgenden Dinge in keiner bestimmten Reihenfolge versucht haben:

  • Neustart der Docker-Maschine.
  • Lauf eval "$(docker-machine env default)"
  • die Zertifikate Regenerations docker-machine regenerate-certs default
  • Neustarten mein Gastgeber Box.
  • Upgrade von Docker.
  • Neuinstallation von Docker.
  • Aktualisieren von VirtualBox.
  • Entfernen aller VirtualBox-Host-Only-Netzwerkgeräte.

Hack

Das einzige, was jetzt für mich arbeitet, um die Docker Maschine zu zerstören und es neu zu erstellen. Dies zerstört alle meine Bilder und Container, und es ist unglaublich zeitaufwendig, es wieder einzurichten.

docker-machine rm -y default && docker-machine create -d virtualbox default && eval $(docker-machine env) 

Gibt es etwas, was ich versuchen kann? Danke!


Update: 9. Mai (Schritte zum Reproduzieren)

ich dieses Problem mit den folgenden Schritten zuverlässig reproduzieren kann:

  1. Beginnen Sie mit einer frisch erstellten Docker Maschine.
  2. Verwenden Sie docker-compose up, um einige Container zu erstellen.
  3. Fahren Sie den Computer mit den laufenden Containern herunter.
  4. Nach dem Neustart funktioniert die Docker CLI nicht, da das Docker-Zeitlimit abgelaufen ist.
+0

funktioniert docker-machine ssh standardmäßig? –

+0

Ja, tut es. :) –

+0

so funktioniert wie docker ps funktioniert nicht? aber ssh funktioniert? –

Antwort

0

Try Umschalten auf die neue docker (beta) Lösung

+0

Ich habe mich für eine Einladung angemeldet, kann aber noch nicht darauf zugreifen. –

+1

Ich bin jetzt auf die Beta umgestiegen, also werden wir sehen, ob das die Dinge verbessert. Sieht so vielversprechend aus ... –

+0

@JoshCole Irgendwelche Verbesserungen? – jdcaballerov

0

Bisher habe ich ein bisschen eine hacky Lösung - das behebt das Docker Maschine, sondern zerstört alle Container und Bilder.

Skript: Umbaumaschine.sh

docker-machine rm -y default 
docker-machine create -d virtualbox default 
docker-machine stop default 
VBoxManage modifyvm "default" --natpf1 "Forwarding App 1,tcp,127.0.0.1,3000,,3000" 
VBoxManage modifyvm "default" --natpf1 "Forwarding App 2,tcp,127.0.0.1,3001,,3001" 
VBoxManage modifyvm "default" --natpf1 "Forwarding App 3,tcp,127.0.0.1,3004,,3004" 
VBoxManage modifyvm "default" --natpf1 "Forwarding App 4,tcp,127.0.0.1,3005,,3005" 
VBoxManage modifyvm "default" --natpf1 "Forwarding App 5,tcp,127.0.0.1,3006,,3006" 
VBoxManage modifyvm "default" --natpf1 "Forwarding App 6,tcp,127.0.0.1,8081,,8081" 
docker-machine start default 
eval $(docker-machine env) 

Erklärung

  • Zerstört die Standard Docker Maschine, Container und Bilder.
  • Erstellt einen neuen Docker-Computer auf VirtualBox und stoppt ihn, damit wir VirtualBox ändern können.
  • Fügt Port Forwarding für verschiedene Anwendungen auf VirtualBox hinzu.
  • Startet die Andockmaschine.
  • Stellt sicher, dass das Terminal für die neue IP-Adresse der Andockmaschine eingerichtet ist.
3

ich das gleiche Problem mit Docker Version 1.11.2, hatte b9f10c9 bauen

dies für mich gearbeitet - meine Docker Maschine an den Fahrzustand zurück

$ Docker-Maschine Neustart

$ eval $ (docker-Maschine env)

0

Dieser arbeitete für mich und meine Behälter nicht zerstört wurden:

  1. Eröffnet Virtual Box Oracle und pausiert die VM
  2. die VM auf Docker Maschine neu gestartet

    $ Docker-Maschine Neustart Standard

Docker Version: 1.12.3

docker- Maschinenversion: 0.8.2, Build e18a919

+0

Hallo @tej, wenn Sie auf die neueste Version von Docker aktualisieren, ist dies kein Problem mehr. Sie müssen die Virtual Box nicht mehr verwenden. –

0

Ich habe virtualbox geöffnet und geschlossen und starte alle vm man ually /. Der Status lautet running wieder

+0

Bitte aktualisieren Sie auf die neueste Version von Docker, dieses Problem wurde vor langer Zeit gelöst. –

+0

Ich habe Docker Version 1.13.1, Build 092cba3 Dieses Problem tritt auf, wenn ich mein Linux-Mint in den Ruhezustand – Crystal

1

Dies ist normalerweise ein Problem im Zusammenhang mit der Art, wie Sie Ihre Maschine starten und stoppen.

U kann es

$ Docker-Maschinenstopp Standard

$

$ Docker-Maschine Regenerat-Zert Standard

nicht „Docker Docker-Maschine Start Standard mit lösen Verwenden Sie -machine restar default "weil es Ihre Netzwerkkonfigurationen nicht aktualisiert.