2016-05-06 38 views
20

Sto avendo un problema ricorrente con Docker Machine - ogni pochi giorni decide di timeout e non riesco a recuperarlo una volta che questo accade.Timeout macchina Docker - come risolvere senza distruggere la macchina?

Esempio

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

Info Ambiente

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 

Solutions Tentativo

Ho provato le seguenti cose in ordine sparso:

  • Riavvio della finestra mobile.
  • Esecuzione eval "$(docker-machine env default)"
  • Rigenerare i certificati docker-machine regenerate-certs default
  • Riavvio mia casella di ospite.
  • Aggiornamento Docker.
  • Reinstallazione del Docker.
  • Aggiornamento di VirtualBox.
  • Rimozione di tutti i dispositivi di rete solo host VirtualBox.

Hack

L'unica cosa che sta lavorando per me in questo momento sta distruggendo la macchina finestra mobile e ricrearlo. Questo distrugge tutte le mie immagini e contenitori, ed è incredibilmente dispendioso in termini di tempo impostarlo di nuovo.

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

C'è qualcosa che posso provare? Grazie!


Aggiornamento: 9 maggio (Procedura per riprodurre)

posso riprodurre in modo affidabile questo problema con le seguenti operazioni:

  1. Inizia con una macchina Docker appena creata.
  2. Utilizzare docker-compose up per costruire alcuni contenitori.
  3. Arresta il computer con i contenitori in esecuzione.
  4. Dopo il riavvio, la CLI Docker non funziona a causa del timeout della macchina Docker.
+0

funziona in modo predefinito ssh docker-machine? –

+0

Sì, sì. :) –

+0

quindi i comandi come docker ps non funzionano? ma ssh funziona? –

risposta

0

commutazione Prova la nuova soluzione di docker (beta)

+0

Mi sono registrato per un invito ma non posso ancora accedervi. –

+1

Ora sono passato alla versione beta, quindi vedremo se questo migliora le cose. Sembra promettente finora ... –

+0

@JoshCole Qualche miglioramento? – jdcaballerov

0

Finora mi hanno un po 'di una soluzione hacky - questo risolve la macchina finestra mobile, ma distrugge tutti i contenitori e le immagini.

Script: rebuild-machine.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) 

Spiegazione

  • distrugge l'impostazione predefinita della finestra mobile della macchina, contenitori e immagini.
  • Crea una nuova finestra mobile su VirtualBox e la interrompe per consentirci di modificare VirtualBox.
  • Aggiunge il port forwarding per varie applicazioni su VirtualBox.
  • Avvia la macchina mobile.
  • Verifica che il terminale sia configurato per il nuovo indirizzo IP della finestra mobile.
3

ho avuto lo stesso problema con Docker versione 1.11.2, costruire b9f10c9

questo ha funzionato per me - la mia macchina finestra mobile è tornato allo stato di esecuzione

$ riavvio finestra mobile-macchina

$ eval $ (ENV finestra mobile-machine)

0

Questo ha funzionato per me ei miei contenitori non sono stati distrutti:

  1. box virtuale Oracle Aperto e si fermò la VM
  2. riavviato il VM sulla macchina finestra mobile

    $ riavvio finestra mobile-macchina di default

finestra mobile versione: 1.12.3

docker- versione della macchina: 0.8.2, build e18a919

+0

Salve @tej, se si aggiorna all'ultima versione di Docker questo non è più un problema. Non è più necessario utilizzare Virtual Box. –

0

Ho aperto virtualbox e chiuso e avvio tutto vm man dualmente /. Lo stato è running di nuovo

+0

Si prega di eseguire l'aggiornamento alla versione più recente di Docker, questo problema è stato risolto molto tempo fa. –

+0

ho Docker versione 1.13.1, build 092cba3 questo problema si verifica ogni volta che ho messo il mio linux in letargo – Crystal

1

Questo di solito è un problema relativo al modo in cui si avvia e si arresta la macchina.

U può risolverlo utilizzando

$ arresto finestra mobile-macchina di default

$ predefinita di inizio finestra mobile-macchina

$ finestra mobile-macchina Rigenerare-certs predefinita

Non usare "finestra mobile -machine restar default "perché non aggiornerà le tue configurazioni di rete.