ランニング 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
どうすれば修正できますか?
最後に、boot2docker-vm
仮想マシンを削除しました。
snowch$ rm -rfi ~/VirtualBox\ VMs/boot2docker-vm/
回答の元のソース: https://github.com/boot2docker/boot2docker/issues/436
注:この方法はおそらく最も高速ですが、既存のboot2docker仮想マシンは失われます。既存のboot2docker仮想マシンを保持したい場合は、 Patrick Henningの答え を試すことができます。
更新: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.
実行中のエラー:マシン "boot2docker-vm"の起動に失敗しました:終了ステータス1
//警告:これによりすべての画像が削除されます
rm -rfi〜/ VirtualBox\VMs/boot2docker-vm /
boot2docker init
boot2docker start
ドッカーps -a
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イメージ(Iso
、CfgFile
、BaseFolder
およびSerialFile
)を識別し、Virtual Boxを使用して起動しますイメージをアップし、完全にシャットダウンします。
この操作で問題が発生しない場合、boot2docker -v info
はboot2docker-vmのState
を提供する必要があります(つまり、この時点でpoweroff
になります) )。
ここからboot2docker up
コマンド(boot2docker start
はありません)で成功でき、boot2docker init
はVirtual machine boot2docker-vm already exists
を返すはずです。そうでない場合は、おそらく再インストールが行われますとにかく注文します。
また、ファイルのアクセス許可など、通常の疑わしい項目も確認してください。
HTH
これは私のために働く:
vboxmanage discardstate boot2docker-vm
boot2docker up
注意が必要なのは、新しいマシンに移行する前から仮想ボックスをインストールしていたことです。環境設定に古いホームフォルダーがありました。これは、Dockerがvmを初期化しようとすると、〜/ oldaccountで初期化しようとすることを意味していました
仮想ボックスで設定を開くと、既存のアカウントに変更できます。
この質問に対する現在受け入れられている答えは、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で正常に起動できるはずです。
受け入れられた解決策は私にはうまくいきませんでした
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
最初にboot2dockerアプリケーションを実行します。これにより、いくつかの変数が設定され、〜/ .boot2dockerディレクトリが作成されます。これが完了すると、boot2docker up/downが機能します。
再起動後、Macで同じ問題が発生しました。 OS Xの再起動により、VirtualBoxはすべてのVMを一時停止しました(boot2dockerを含む)。
VirtualBoxを開き、中断されたインスタンスを起動すると問題が修正され、Dockerを再利用できました。