web-dev-qa-db-fra.com

Comment corriger "erreur en cours d'exécution: impossible d'obtenir la machine" boot2docker-vm ": la machine n'existe pas"?

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?

34
Chris Snow

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

43
Chris Snow

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.
36
Patrick Henning
  • Erreur:

erreur en cours d'exécution: impossible de démarrer la machine "boot2docker-vm": quitter l'état 1

  • Solution:

// ATTENTION: cela supprimera toutes vos images

  1. rm -rfi ~/VirtualBox\VMs/boot2docker-vm /

  2. boot2docker init

  3. démarrage de boot2docker

  4. docker ps -a

13
Mahmoud Zalt

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

6
Anthony A

Cela fonctionne pour moi:

vboxmanage discardstate boot2docker-vm
boot2docker up
2
Alain Beauvois

À 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.

1
Ed Sykes

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.

0
Eli

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
0
agenteo

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.

0
iyerland

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.

0
David