Fonctionnement boot2docker
avec les arguments start
| info
| stop
| delete
donne un message d'erreur:
snowch$ boot2docker start
error in run: Failed to get machine "boot2docker-vm": machine does not exist
snowch$ boot2docker info
error in run: Failed to get machine "boot2docker-vm": machine does not exist
snowch$ boot2docker stop
error in run: Failed to get machine "boot2docker-vm": machine does not exist
snowch$ boot2docker delete
error in run: Failed to get machine "boot2docker-vm": machine does not exist
L'erreur init
était légèrement différente
snowch$ boot2docker init
error in run: Failed to initialize machine "boot2docker-vm": exit status 1
Comment puis-je réparer cela?
Au final, j'ai supprimé le boot2docker-vm
machine virtuelle:
snowch$ rm -rfi ~/VirtualBox\ VMs/boot2docker-vm/
Source d'origine de la réponse: https://github.com/boot2docker/boot2docker/issues/436
Remarque : cette méthode est probablement la plus rapide mais vous perdrez votre machine virtuelle boot2docker existante. Si vous souhaitez conserver votre machine virtuelle boot2docker existante, vous pouvez essayer réponse de Patrick Henning
Mise à jour: Boot2Docker est désormais hérité. Voir ici pour l'avis de dépréciation officiel: https://docs.docker.com/installation/mac/ , et ici pour plus d'informations sur la migration d'un v2 Boot2Docker préexistant vers Docker Machine: https://docs.docker.com/machine/migrate-to-machine/ .
Je n'ai pas encore vu si ce problème persiste ou si une solution analogue à celle ci-dessous, exécutant docker-machine
avec les drapeaux appropriés à la place de boot2docker
, aiderait à y remédier.
Cela a fonctionné pour moi et j'ai gardé toutes mes images/conteneurs . J'ai suivi la réponse d'Anthony A: https://stackoverflow.com/a/26592419/4377364 .
Voici les étapes exactes:
$ boot2docker -v info
{
"Name": "boot2docker-vm",
"UUID": "470abff4-f4fe-4c24-90c5-32b3ef7bfbe2",
"Iso": "/Users/pat/.boot2docker/boot2docker.iso",
"State": "saved",
"CPUs": 4,
"Memory": 2048,
"VRAM": 8,
"CfgFile": "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox",
"BaseFolder": "/Users/pat/VirtualBox VMs/boot2docker-vm",
"OSType": "",
"Flag": 0,
"BootOrder": null,
"DockerPort": 0,
"SSHPort": 2022,
"SerialFile": "/Users/pat/.boot2docker/boot2docker-vm.sock"
}
Remarque:"State": "saved"
.
Identifié le fichier .vbox:
"CfgFile": "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox"
Utilisé comme entrée pour démarrer la VM:
$ VBoxManage startvm "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox"
Puis pour l'arrêter:
$ VBoxManage controlvm "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox" acpipowerbutton
Vérifié qu'il avait effectivement fermé:
$ boot2docker -v info
{
"Name": "boot2docker-vm",
"UUID": "470abff4-f4fe-4c24-90c5-32b3ef7bfbe2",
"Iso": "/Users/pat/.boot2docker/boot2docker.iso",
"State": "poweroff",
"CPUs": 4,
"Memory": 2048,
"VRAM": 8,
"CfgFile": "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox",
"BaseFolder": "/Users/pat/VirtualBox VMs/boot2docker-vm",
"OSType": "",
"Flag": 0,
"BootOrder": null,
"DockerPort": 0,
"SSHPort": 2022,
"SerialFile": "/Users/pat/.boot2docker/boot2docker-vm.sock"
}
Remarque:"State": "poweroff"
.
Démarré la machine virtuelle boot2docker:
$ boot2docker up
Waiting for VM and Docker daemon to start...
.................ooo
Started.
erreur en cours d'exécution: impossible de démarrer la machine "boot2docker-vm": quitter l'état 1
// ATTENTION: cela supprimera toutes vos images
rm -rfi ~/VirtualBox\VMs/boot2docker-vm /
boot2docker init
démarrage de boot2docker
docker ps -a
Commencer avec boot2docker -v info
pour voir où les images et les fichiers doivent se trouver.
{
"Name": "boot2docker-vm",
"UUID": "dbd28698-2cab-43d2-8e37-f6c07bd15137",
"Iso": "/Users/ezrak/.boot2docker/boot2docker.iso",
"State": "running",
"CPUs": 8,
"Memory": 2048,
"VRAM": 8,
"CfgFile": "/Users/ezrak/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox",
"BaseFolder": "/Users/ezrak/VirtualBox VMs/boot2docker-vm",
"OSType": "",
"Flag": 0,
"BootOrder": null,
"DockerPort": 0,
"SSHPort": 2022,
"SerialFile": "/Users/ezrak/.boot2docker/boot2docker-vm.sock"
}
Si vous obtenez des erreurs lors de l'exécution de cette commande ou si les fichiers mentionnés dans sa sortie sont manquants, je vous recommande de réinstaller boot2docker car c'est probablement l'option la plus rapide pour un état de normalité.
Sinon, utilisez les informations renvoyées pour identifier votre image Virtual Box pour boot2docker (Iso
, CfgFile
, BaseFolder
et SerialFile
) et utilisez Virtual Box pour démarrer l'image, puis la fermer complètement.
Si vous ne rencontrez aucun problème avec cette opération, alors boot2docker -v info
devrait vous donner le State
du boot2docker-vm (c'est-à-dire qu'il devrait être poweroff
à ce stade).
De là, vous devriez pouvoir réussir avec le boot2docker up
commande (il n'y a pas de boot2docker start
) et boot2docker init
devrait retourner Virtual machine boot2docker-vm already exists
, sinon, une réinstallation est probablement de toute façon en ordre.
Veuillez également vérifier les suspects habituels tels que les autorisations de fichiers, etc.
HTH
Cela fonctionne pour moi:
vboxmanage discardstate boot2docker-vm
boot2docker up
À surveiller, j'avais une ancienne installation de boîte virtuelle avant de migrer vers une nouvelle machine. Il avait un ancien dossier de départ dans les préférences. Cela signifie que lorsque docker essaie de lancer la VM, il essaie de le faire dans ~/oldaccount
Si vous ouvrez les préférences dans la boîte virtuelle, vous pouvez modifier votre compte existant.
La réponse actuellement acceptée à cette question vous demande de supprimer complètement le boot2docker vm. Cela fonctionnera, mais cela vous laissera également sans le cache de votre docker ou les partages de volume enregistrés effectués via
vboxmanage sharedfolder add "boot2docker-vm" ...
Ce n'est évidemment pas idéal, surtout si vous partagez beaucoup de volumes entre votre système hôte et votre VM, ou si vos builds prennent du temps.
Pour moi, le error in run: Failed to get machine "boot2docker-vm": machine does not exist
apparaît au redémarrage du système. VirtualBox essaie d'être intelligent et "enregistre" le VM, qui est un état auquel boot2docker ne semble pas pouvoir se remettre correctement. Pour résoudre ce problème, accédez à VirtualBox et mettez le vm hors tension. Revenez ensuite à boot2docker et exécutez boot2docker up
. Maintenant que le vm a été gracieusement mis hors tension, boot2docker devrait pouvoir l'amener très bien.
la solution acceptée n'a pas fonctionné pour moi
J'ai dû exporter les variables env de boot2docker
export DOCKER_Host=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/USERNAME/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
Exécutez d'abord l'application boot2docker. Cela définit certaines variables et crée le répertoire ~/.boot2docker. Une fois cela fait, boot2docker up/down fonctionnera pour vous.
J'ai eu le même problème sur mon mac après le redémarrage. Un redémarrage d'OS X a obligé VirtualBox à suspendre toutes les machines virtuelles (y compris boot2docker).
Ouvrir VirtualBox et démarrer l'instance suspendue a résolu le problème et j'ai pu réutiliser le docker.