Windows10にDockerをインストールしたらVirtualboxの仮想マシンが起動せず

Virtualboxの仮想マシンも弄り慣れてきてしばらく経ったある日・・・。

突然、Virtualboxの仮想マシンが起動しなくなりました。

思いつくところといえばDockerの存在。

Windows10標準の仮想化システムHyper-Vも関係していることが分かったので、説明していきます。

Virtualboxの仮想マシンが起動しなくなった理由

Windows10に標準で入っているHyper-Vが有効になっていたためでした。

Virtualboxで仮想マシンを起動する時は、Hyper-V を無効(オフ)にしましょう。

Windows10ではDockerとVirtualboxは共存NG

Windows10の環境では、DockerとVirtaulboxは共存できません。

Dockerをインストールすると、Hyper-Vが有効(オン)になります。

Hyper-Vが有効だと、Virtualboxの仮想マシンは起動しません。
(何かしらHyper-Vが有効のままでも、Virtualboxの仮想マシンを起動させる方法はあるのかもしれませんが。)

事象

  • VirtualboxとVagrantをインストール して仮想マシン作成。
    問題なく動作する。
  • Dockerインストールしてコンテナ作成。問題なく動作する。
  • Virtualboxで仮想マシン起動。エラー発生して動作せず・・・。

Virtualboxのエラー内容

仮想マシン”GNS3 VM”のセッションを開けませんでした。

Cannot enable nested VT-x/AMD-V without nested-paging and unresricted guest execution!

(VERR_CPUM_INVALID_HWVIRT_CONFIG).

終了コード : E_FAIL (0x80004005)
コンポーネント: ConsoleWrap
インターフェース: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

環境

  • Windows10
  • VirtualBox バージョン 6.1.8 r137981 (Qt5.6.2)
  • docker desktop 2.3.0.3

解決策

管理者権限でコマンドプロンプトを起動し、bcdedit コマンドを実行後に、PCを再起動します。
(Windowsキー + r → Ctrl + Shift + Enter)

Hyper-Vを無効後にPC再起動(Virtualboxを使いたい時)

C:\WINDOWS\system32> bcdedit /set hypervisorlaunchtype off
この操作を正しく終了しました。

Hyper-Vを有効後にPC再起動(Dockerを使いたい時)

Dockerを使いたときは、Hyper-Vを有効にします。

C:\WINDOWS\system32> bcdedit /set hypervisorlaunchtype auto
この操作を正しく終了しました。

参考サイト

Windows 10 上での VirtualBox と Docker の共存

Hyper-V をオン/オフする方法 – Qiita

まとめ

  • Windows10ではDockerとVirtualboxは共存できない
  • Virtualbox使用時はHyper-Vをオフにする。
  • Docker使用時はHyper-Vをオンにする。