Hyper-VシステムでVagrantおよびDocker-for-Windowsを使用する方法


12

昔は、VirtualBox(VB)Vagrant(V)を使ってVMを実行していました。docker-for-windows(DfW)をインストールしてVを実行したので、VBはHyper-V(HV)について不満を言っています。

[user@localhost ~]$ vagrant up
Stderr: VBoxManage.exe: error: VT-x is not available (VERR_VMX_NO_VMX)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component
ConsoleWrap, interface IConsole

が、このリンクは VがHVをサポートしていることを示し、上記のエラーメッセージが矛盾です。VBがHVと互換性がないように見えるのはなぜですか?VがHVをサポートしているとVが言っている理由と、Vを再び使用するには、HVを無効にする必要がある方法です。

| Product    | Version |
|:-----------|--------:|
| Vagrant    |   2.0.1 |
| VirtualBox |   5.2.4 |
| Windows    |      10 | 

討論

Hyper-Vのオンとオフを切り替える提案は、時間がかかるため、推奨されるソリューションではありません。

VBを置き換えることにより、同じシステムでVとDfWを実行することが可能である場合、これは1つのオプションです。

回答:


9

Hyper-Vがアクティブ化されると、Microsoft technetを参照するSOに関する この回答で確認されます。Hyper -Vがアクティブ化されると、プロセッサのVT-X命令がその上にあるOSにマスクされ、ゲストのようにウィンドウが実行されます。

Docker for Windowsが機能するためにはHyper-Vが必要なので、それを無効にすることは実際にはオプションではありません。

Hyper-Vの上で仮想ボックスを実行する方法はありません。これはごく普通のことです。ハイパーバイザー内でハイパーバイザーを実行しないでください。ハードウェアアクセスを調整するために戦います。

私の意見で最良の回避策は、仮想ボックスマシンではなく、hyper-Vプロバイダーを使用してvagrantからhyper-V仮想マシンを作成することです。これにより、同じセッションでVMまたはコンテナーを作成できます。

補足:浮浪者はすでにhyper-vプロバイダーのドキュメントページでこれに関するメモを持っています(上に追加するリンクの検索中に見つかりました):

警告:Hyper-Vを有効にすると、VirtualBox、VMware、およびその他の仮想化テクノロジーが機能しなくなります。他のハイパーバイザーが必要になる場合がある場合に、Hyper-Vを有効にせずにWindowsを起動するための起動エントリを作成する簡単な方法については、このブログ投稿を参照してください。


0

Vagrantとともに、「Docker for Windows」の代わりに古い学校のレガシー「Docker Toolbox」を使用できます。これは、DockerがLinux VMで実行されているため、動作が遅くなることを意味します。 https://docs.docker.com/toolbox/toolbox_install_windows/ それ以外、はい、Docker用のHyperVが必要なすべてのコンピュータを再起動するか、迷惑行為が必要な場合は削除します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.