「Docker for Windows」と「Oracle VM VirtualBox」は同時に使えない
キィーーー! 私とあの娘、どっちが大事なのよ!
先日、正式版がリリースされた「Docker for Windows」。
以前にクローズドβを試してみた記事を書いております。
今までWindows上でDockerを起動するには、VirtualBoxを使う必要があったのだけれども、それを直接利用できるのは便利なことこの上ない。でも、待って頂戴。
コンテナ上で起動するアプリの開発はどこでやるの?
勿論作るアプリの機能によるのだろうけれど、オッサン的には実行環境のOSによる振る舞いとかで後々悩むのは嫌なので、コンテナで起動するのと同じOS使ってVirtualBox上で開発するのである。
で、実際に1台のPC上で「Docker for Windows」と「Oracle VM VirtualBox」を併用しようとしてハマったので記念メモ。
Docker for Windows
「ワシには武器(Hyper-V)が必要なんじゃぁああああ!」
とおっしゃっております。
ということで、Dockerさんを使うには
- 「プログラムと機能」の「Windowsの機能の有効化または無効化」
- 「Hyper-V」にチェックして「OK」をクリック
- 再起動
Oracle VM VirtualBox
「ふぇええ。応援(仮想化支援機能)がないと動けないよぉおお。」
とおっしゃっております。
ということで、VirtualBoxさんを使うには
- 「プログラムと機能」の「Windowsの機能の有効化または無効化」
- 「Hyper-V」にチェックを外して「OK」をクリック
- 再起動
つまり、Docker for Windowsが利用している「Hyper-V」とOracle VM VirtualBoxがホストマシンの仮想化支援機能(VT-x/AMD-V)を専有してしまうので、どちらかしか使えないというオチでございます。まあ
考えたら当たり前なんですけども。
ということで、オッサンのようにDokcerとVirtualBoxを併用するには、
- 利用シーンに合わせて設定を切り替えて再起動
- VirtualBox上のDockerでコンテナ動作確認
- 開発環境もコンテナで
- 別のマシン使う
のどれかになるのかなと。