我可以在虚拟机中运行Docker吗?

时间:2016-09-27 08:52:52

标签: docker virtual-machine parallels

我试图在虚拟机上运行Docker。

Host : MacBook 
VM : Parallels Windows 7

发生错误:

enter image description here

有可能吗?

4 个答案:

答案 0 :(得分:31)

如果VM是Linux,你可以毫无问题地做到这一点 - 在Linux上,Docker本质上是一个运作良好的chroot。因此,Linux docker不是虚拟化。

在Windows的情况下,它并不那么容易。 Windows Docker内部使用Hyper-V来模拟容器。这意味着只有在可以使用嵌套虚拟化的情况下才能运行:

  1. 在您的主机上运行Windows VM
  2. 在Windows VM中运行HyperV
  3. HyperV由安装在虚拟Windows上的docker管理。
  4. 我尝试了qemu / kvm,virtualbox和vmware播放器。我深深地和强烈地配置了它们,我已经砍掉了它们,我尽一切可能去做。只有最后一个工作(VMWare)。

    速度成本很高,但它可能对Linux上的开发有用,然后对Windows配置进行试用。

    你需要很多公羊。至少16G。 32G更好。一个相对有用的配置是:

    • 物理主机的32GB物理RAM
    • 运行Windows VM的12GB虚拟RAM
    • 适用于HyperV Linux主机的Windows VM 内的8GB虚拟RAM

    有时会出现一点点错误,但只有你的HyperV会崩溃,你的虚拟Win或你的主机都不会。可以在Windows机器上测试docker容器,这是在Linux上开发的。不要以这种方式创建关键任务服务器。 : - )

答案 1 :(得分:18)

您在Windows VM中使用Docker Machine,实际上是在Mac上的Windows VM中创建Linux VM。你可以这样做,但你需要enable nested virtualization - 我不确定你能在Parallels 7中做到这一点。

相反,您可以直接在Mac上运行Docker Machine和use Parallels to create the Linux VM - 这意味着Docker在Mac上的Linux VM中运行,而您不需要嵌套虚拟化。

或者最好使用Docker for Mac如果您的操作系统支持它,它是最新产品,并且具有比Docker Machine更好的主机集成。

答案 2 :(得分:6)

如果要使用Windows 10 Pro或Enterprise和Hyper-V,那么您要做的就是启用nested virtualization。在您的主机上,运行(关闭您的访客):

> Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

现在,您可以启动来宾并正常运行Docker Desktop。

答案 3 :(得分:1)

工作得很好。基本操作系统 win 10 pro 与 VirtualBox 版本:6.1 和 vagrant with ubuntu 20.04Using vagrant box 跟随 docker instructions。使用 vagrant public network 无需端口转发即可访问所有应用。