J'utilise Mac OS 10.9.5, j'ai suivi https://docs.docker.com/installation/mac/ pour installer docker. Je reçois un message d'erreur de dépassement de délai lorsque j'exécute le menu fixe, même si boot2docker VM s'exécute en arrière-plan.
nikhil@macbook ~> boot2docker status
running
nikhil@macbook ~> boot2docker ip
The VM's Host only interface IP address is: 192.168.59.103
nikhil@macbook ~> docker run hello-world
2014/11/01 01:01:31 Post https://192.168.59.103:2376/v1.15/containers/create: dial tcp 192.168.59.103:2376: i/o timeout
nikhil@macbook ~> docker search ubuntu
2014/11/01 01:02:40 Get https://192.168.59.103:2376/v1.15/images/search?term=ubuntu: dial tcp 192.168.59.103:2376: i/o timeout
J'ai vérifié que le menu fixe est en cours d'exécution à l'intérieur de la machine boot2docker et que mon port est correct.
nikhil@macbook ~> boot2docker ssh
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
_ _ ____ _ _
| |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.3.1, build master : 9a31a68 - Fri Oct 31 03:14:34 UTC 2014
Docker version 1.3.1, build 4e9bbfa
docker@boot2docker:~$ Sudo netstat -ntpl | grep docker
tcp 0 0 :::2376 :::* LISTEN 629/docker
J'ai eu ce problème aussi et voici une solution temporaire.
Tout d’abord, ouvrez virtualbox et vérifiez les paramètres réseau sur le boot2docker vm pour voir ce que le Host only
l'adaptateur est nommé. Dans mon cas, c'est vboxnet1; pour vous, cela peut être vboxnet0.
Ensuite, appliquez cette commande:
Sudo route -nv add -net 192.168.59 -interface vboxnet1
Vous devriez maintenant pouvoir exécuter des commandes de menu fixe.
Voir ce numéro pour plus d'informations
edit : Je constate avec le temps qu'un dénominateur commun à ce problème est Cisco anyconnect (moi inclus), fwiw
J'utilise OSX Yosemite et Cisco Anyconnect (qui sont apparemment un mauvais combo pour utiliser boot2docker) et les éléments suivants ont finalement fonctionné pour moi (grâce au commentaire lié au problème GitHub ):
Ces étapes ajouteront une règle de transfert de port et modifieront votre environnement pour que le menu fixe pointe sur 127.0.0.1
(au lieu de 192.168.59.103
ou autre adresse IP NATée).
Premier - boot2docker doit être installé mais ne fonctionne pas.
S'il est en cours d'exécution, arrêtez-le maintenant:
boot2docker down
Ajouter une règle pour transférer le trafic de 127.0.0.1:2376
pour mettre en communication 2376
sur la machine boot2docker:
vboxmanage modifyvm "boot2docker-vm" --natpf1 "docker,tcp,127.0.0.1,2376,,2376"
Démarrez boot2docker:
boot2docker up
Définissez les variables d'environnement DOCKER par défaut:
$(boot2docker shellinit)
Remplacer le DOCKER_Host
variable pour pointer sur 127.0.0.1
:
export DOCKER_Host=tcp://127.0.0.1:2376
Vous devriez maintenant pouvoir exécuter les commandes de docker:
docker version
Voici ce que j'ai fait pour résoudre le problème (j'utilise OSX Yosemite et la réponse acceptée ne fonctionne pas pour moi):
boot2docker delete
- Attention: Cela supprime toutes vos images du menu fixe.boot2docker init
boot2docker up
Docker fonctionne désormais à partir de la ligne de commande OS X via iTerm2 pour moi.
Cela m'est arrivé aussi, et aucune des solutions ci-dessus n'a résolu le problème.
Aujourd'hui, grâce à la suggestion de mes collègues, je n'ai pas d'abord démarré mon VPN. J'ai redémarré ma machine et démarré avec docker depuis le début.
boot2docker init
boot2docker up
$(boot2docker shellinit)
docker run hello-world
Travaillé comme prévu!
J'ai trouvé cela post de Florian Rosenberg utile. Je l'ai lu en détail, mais je pense que la plupart de ce qu'il suggère dans la première partie a été pris en compte dans la version la plus récente de boot2docker. Mais la partie intéressante était "Connexion au VPN Les choses vont se casser". Ce qu'il a suggéré est de rechercher une règle de pare-feu qui refuse tout. Donc, sans VPN, je cherchais cette règle, qui n'y était pas. Effectivement, une fois que j'ai activé mon VPN, l'erreur suivante (différente) s'est produite ...
docker run hello-world
2014/11/13 11:11:18 Post https://192.168.59.103:2376/v1.15/containers/create: dial tcp 192.168.59.103:2376: permission denied
J'ai vérifié les règles du pare-feu et, bien sûr, une nouvelle règle a été ajoutée ... Sudo ipfw -a list | grep "deny ip" 00411 1 64 refuser l'ip de n'importe
Une fois que j'ai supprimé cette règle de pare-feu avec: Sudo ipfw delete 00411
J'ai pu parler au menu fixe à partir de la commande Shell OSX.
Ok, donc cela m'est arrivé aussi.
Tout d'abord, la définition des variables d'environnement est nécessaire. Mais ensuite, j'ai continué à avoir l'erreur d'erreur de délai d'attente d'E/S même après cela.
Ainsi, au lieu de démarrer boot2docker en exécutant le package d'application (en cliquant sur l'icône boot2docker), je l'ai démarré à partir de la ligne de commande.
J'ai d'abord exécuté,
$boot2docker init
Ceci dit, le VM était déjà en cours d'exécution.
Ensuite, je suis allé de l'avant et j'ai essayé de le démarrer.
$boot2docker start
Cela a commencé.
Vous pouvez le vérifier en exécutant
$boot2docker info
Il imprime un JSON sur votre instance en cours d'exécution.
Ensuite, vous pouvez ssh dedans et courir
$boot2docker ssh
$docker run hello-world
C'est ça. J'espère que ça aide.
J'ai eu ce problème après avoir exécuté Cisco AnyConnect. Même après avoir arrêté AnyConnect, le problème a persisté. La réponse de @ treehau5 fonctionne, mais ce qui a également fonctionné pour moi a été de boot2docker poweroff
puis à l'aide du moniteur d'activité, supprimez le ciscod
laissé par AnyConnect. Ensuite, j'ai ouvert une nouvelle fenêtre de terminal et démarré normalement boot2docker. Les commandes de docker ont ensuite fonctionné correctement.
C'était facile pour moi. J'ai mis à niveau virtualbox et ce problème est parti.
J'ai essayé la méthode treehau5 mais cela n'a pas fonctionné. J'ai modifié le paramètre réseau de VirtualBox du paramètre v2 de boot2docker - le mode Promiscuous de l'adaptateur pour hôte uniquement à "Autoriser tout".
J'ai supprimé vboxnet0 des préférences de VirtualBox et initialisé un deuxième boot2docker vm (boot2docker --vm = "boot2docker-vm2" init) pour recréer vboxnet0 avec les paramètres corrects. Après cela, les choses semblèrent redevenir normales.
Voici ce qui a fonctionné pour moi quand j'ai rencontré un problème similaire. Assurez-vous d'avoir mis à niveau VirtualBox, puis:
boot2docker stop
boot2docker init
boot2docker start; eval "$(boot2docker shellinit)"
Ensuite, pour des raisons de santé mentale, vérifiez que $DOCKER_Host
Correspond à $(boot2docker ip)
. Je soupçonne que beaucoup de choses se passaient, car lorsque j'ai commencé, $DOCKER_Host
Était devenu désorganisé.
La question et quelques discussions peuvent être trouvées dans la page des problèmes de GitHub ici - il semble plutôt que ce soit souvent le cas où VirtualBox est floconneux.