Je rencontre un problème récurrent avec Docker Machine. Tous les jours ou quelques jours, le délai d’arrêt du délai est dépassé et je suis incapable de le récupérer une fois que cela se produit.
Exemple
docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default virtualbox Timeout
Info Environnement
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 tentées
J'ai essayé les choses suivantes sans ordre particulier:
eval "$(docker-machine env default)"
docker-machine regenerate-certs default
Pirater
La seule chose qui fonctionne pour moi en ce moment est de détruire la machine de docker et de la recréer. Cela détruit toutes mes images et tous mes conteneurs et il est extrêmement fastidieux de le configurer à nouveau.
docker-machine rm -y default && docker-machine create -d virtualbox default && eval $(docker-machine env)
Y a-t-il quelque chose que je puisse essayer? Merci!
Mise à jour: 9 mai (étapes à suivre)
Je peux reproduire ce problème de manière fiable en procédant comme suit:
docker-compose up
pour créer des conteneurs.Cette commande a fonctionné pour moi avec le pilote digitalocean:
docker-machine ls -t 20
Il semble que le délai d'attente par défaut de 10 secondes soit trop court.
Il s'agit généralement d'un problème lié à la manière dont vous démarrez et arrêtez votre machine.
U peut le résoudre en utilisant
$ docker-machine stop default
$ docker-machine start default
$ docker-machine regenerate-certs par défaut
N'utilisez pas "docker-machine restar default" car cela ne rafraîchirait pas vos configurations réseau.
J'ai eu le même problème avec Docker version 1.11.2, build b9f10c9
cela a fonctionné pour moi - mon docker est de nouveau en état de fonctionnement
$ docker-machine restart
$ eval $ (env. docker-machine)
Mon problème était très simple. Je bloquais le port 2376 avec mon pare-feu ufw. Docker-machine a besoin de ce port ouvert pour se connecter à la télécommande.
Cela a fonctionné pour moi et mes conteneurs n'ont pas été détruits:
Redémarrage de la VM sur le docker
$ docker-machine restart par défaut
version de docker: 1.12.3
version docker-machine: 0.8.2, build e18a919
Jusqu'à présent, j'ai un peu une solution de hacky - cela corrige la machine docker mais détruit tous les conteneurs et les images.
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)
Explication
J'ai ouvert virtualbox et fermé et démarrez tous vm manuellement /. State est running
again
Mon problème était très trivial - j'ai exécuté la commande "docker machine ls" juste après le redémarrage de la machine docker. Elle ne fonctionnait donc pas encore et cela entraînait un dépassement de délai.