web-dev-qa-db-ja.com

「実行中のエラー:マシン「boot2docker-vm」の取得に失敗しました:マシンが存在しません」の修正方法

ランニング boot2docker引数にstart | info | stop | delete引数を指定すると、エラーメッセージが表示されます。

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

initエラーはわずかに異なりました

snowch$ boot2docker init
error in run: Failed to initialize machine "boot2docker-vm": exit status 1

どうすれば修正できますか?

34
Chris Snow

最後に、boot2docker-vm仮想マシンを削除しました。

snowch$ rm -rfi ~/VirtualBox\ VMs/boot2docker-vm/

回答の元のソース: https://github.com/boot2docker/boot2docker/issues/436

:この方法はおそらく最も高速ですが、既存のboot2docker仮想マシンは失われます。既存のboot2docker仮想マシンを保持したい場合は、 Patrick Henningの答え を試すことができます。

43
Chris Snow

更新:Boot2Dockerはレガシーになりました。公式の非推奨通知についてはこちらをご覧ください: https://docs.docker.com/installation/mac/ 、および既存のBoot2Docker vmをDockerマシンに移行する方法についてはこちらをご覧ください: https:/ /docs.docker.com/machine/migrate-to-machine/

この問題が引き続き存在するかどうか、または以下に類似した解決策があれば、docker-machineの代わりに適切なフラグを付けてboot2docker、それを修復するのに役立ちます。


これは私のために働いたと私はすべての私の画像/コンテナを保持しました。 Anthony Aの応答に従いました: https://stackoverflow.com/a/26592419/4377364

正確な手順は次のとおりです。

$ 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"
}

注:"State": "saved"

.vboxファイルを識別しました:

"CfgFile": "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox"

これを入力として使用して、VMを開始します。

$ VBoxManage startvm "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox"

その後、シャットダウンする:

$ VBoxManage controlvm "/Users/pat/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vbox" acpipowerbutton

実際にシャットダウンしたことを確認しました:

$ 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"
}

注:"State": "poweroff"

Boot2docker VMを開始しました。

$ boot2docker up

Waiting for VM and Docker daemon to start...
.................ooo
Started.
36
Patrick Henning
  • エラー:

実行中のエラー:マシン "boot2docker-vm"の起動に失敗しました:終了ステータス1

  • 溶液:

//警告:これによりすべての画像が削除されます

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

  2. boot2docker init

  3. boot2docker start

  4. ドッカーps -a

13
Mahmoud Zalt

boot2docker -v infoから始めて、画像とファイルの場所を確認します。

{
    "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"
}

このコマンドの実行中にエラーが発生した場合、または出力に記載されているファイルが見つからない場合は、通常の状態への最も速いオプションである可能性があるため、boot2dockerを再インストールすることをお勧めします。

そうでない場合、返された情報を使用してboot2dockerのVirtual Boxイメージ(IsoCfgFileBaseFolderおよびSerialFile)を識別し、Virtual Boxを使用して起動しますイメージをアップし、完全にシャットダウンします。

この操作で問題が発生しない場合、boot2docker -v infoboot2docker-vmStateを提供する必要があります(つまり、この時点でpoweroffになります) )。

ここからboot2docker upコマンド(boot2docker startはありません)で成功でき、boot2docker initVirtual machine boot2docker-vm already existsを返すはずです。そうでない場合は、おそらく再インストールが行われますとにかく注文します。

また、ファイルのアクセス許可など、通常の疑わしい項目も確認してください。

HTH

6
Anthony A

これは私のために働く:

vboxmanage discardstate boot2docker-vm
boot2docker up
2
Alain Beauvois

注意が必要なのは、新しいマシンに移行する前から仮想ボックスをインストールしていたことです。環境設定に古いホームフォルダーがありました。これは、Dockerがvmを初期化しようとすると、〜/ oldaccountで初期化しようとすることを意味していました

仮想ボックスで設定を開くと、既存のアカウントに変更できます。

1
Ed Sykes

この質問に対する現在受け入れられている答えは、boot2docker vmを完全に削除することです。それは機能しますが、ドッカーキャッシュや保存されたボリューム共有を使用することもできません。

vboxmanage sharedfolder add "boot2docker-vm" ...

特にホストシステムとvmの間で大量のボリュームを共有している場合や、ビルドに時間がかかる場合は、明らかに理想的ではありません。

私にとって、error in run: Failed to get machine "boot2docker-vm": machine does not existはシステムの再起動時に表示されます。 VirtualBoxはスマートになろうとし、vmを「保存」します。これは、boot2dockerが正常に回復できないように見える状態です。これを修正するには、VirtualBoxに移動して、vmの電源を切ります。次に、boot2dockerに戻り、boot2docker upを実行します。 vmの電源が正常にオフになったので、boot2dockerで正常に起動できるはずです。

0
Eli

受け入れられた解決策は私にはうまくいきませんでした

Boot2docker env変数をエクスポートする必要がありました

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

最初にboot2dockerアプリケーションを実行します。これにより、いくつかの変数が設定され、〜/ .boot2dockerディレクトリが作成されます。これが完了すると、boot2docker up/downが機能します。

0
iyerland

再起動後、Macで同じ問題が発生しました。 OS Xの再起動により、VirtualBoxはすべてのVMを一時停止しました(boot2dockerを含む)。

VirtualBoxを開き、中断されたインスタンスを起動すると問題が修正され、Dockerを再利用できました。

0
David