web-dev-qa-db-ja.com

仮想マシンでDockerを実行できますか?

仮想マシンでDockerを実行しようとしました。

Host : MacBook 
VM : Parallels Windows 7

そしてエラーが発生します:

enter image description here

出来ますか?

31
shkim

Windows VMでDocker Machineを使用しており、実際にはMac上でWindows VM内にLinux VMを作成します。それはできますが、 ネストされた仮想化を有効にする が必要です-これはParallels 7でできるかどうかわかりません。

代わりに、Macで直接Docker Machineを実行し、 Parallelsを使用してLinux VMを作成する -DockerがMac上のLinux VMで実行されており、ネストされた仮想化が必要です。

または、できれば Mac用Docker を使用してください。OSがそれをサポートしている場合、それは最新の製品であり、Docker Machineよりもはるかに優れたホスト統合を備えています。

18
Elton Stoneman

VMがLinuxの場合、これを問題なく実行できます。Linuxでは、Dockerは基本的にうまく機能するchrootです。したがって、Linuxドッカーは仮想化ではありません。

Windowsの場合、それはそれほど簡単ではありません。 Windows Dockerは、内部的にHyper-Vを使用してコンテナーをエミュレートします。つまり、ネストされた仮想化を使用できる場合にのみ実行できます。

  1. ホストマシンでWindows VMを実行します
  2. Windows VM内で、HyperVを実行します
  3. HyperVは、仮想Windowsにインストールされたドッカーによって管理されます。

Qemu/kvm、virtualbox、vmware playerを試しました。それらを深く強力に設定し、ハッキングしました。できる限りのことをしました。最後に機能した(VMWare)のみ。

かなりのスピードコストがかかりますが、Linuxでの開発、およびWindows構成でのトライアルテストに役立つ場合があります。

あなたは多くのラムが必要になります。少なくとも16G。 32Gの方が優れています。比較的有用な構成は次のとおりです。

  • 物理ホスト用の32GB物理RAM
  • 12GB仮想RAMはWindows VMで実行中
  • 8GB仮想RAM Windows VM内 HyperV Linuxホスト用。

少しバグがある場合もありますが、HyperVのみがクラッシュし、仮想Winまたはホストマシンはクラッシュしません。 Linuxで開発したWindowsマシンでdockerコンテナをテストすることは問題ありません。この方法でミッションクリティカルなサーバーを作成しないでください。 :-)

33
peterh