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

shk*_*kim 32 parallels virtual-machine docker

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

Host : MacBook 
VM : Parallels Windows 7
Run Code Online (Sandbox Code Playgroud)

并发生错误:

在此输入图像描述

可能吗?

pet*_*ica 34

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

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

  1. 在主机上运行Windows VM
  2. 在Windows VM中,运行HyperV
  3. HyperV由安装在虚拟Windows上的docker管理.

我尝试了qemu/kvm,virtualbox和vmware播放器.我深深地和强烈地配置了它们,我已经砍掉了它们,我尽一切可能去做.只有最后一个工作(VMWare).

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

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

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

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

  • @MarinosAn我真的不明白,应该有什么说服力呢.这是事实. (5认同)
  • @MarinosAn 这是令人信服的,因为 Windows 很糟糕:) Windows 本身需要大量资源,如果你设法在其中运行虚拟机,你就会增加你的成本...... (2认同)

Elt*_*man 19

您在Windows VM中使用Docker Machine,它实际上是在Mac上的Windows VM中创建Linux VM.您可以这样做,但您需要启用嵌套虚拟化 - 我不确定您可以在Parallels 7中执行此操作.

相反,您可以直接在Mac上运行Docker Machine并使用Parallels创建Linux VM - 这意味着Docker在Mac上的Linux VM中运行,而您不需要嵌套虚拟化.

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


Osk*_*kar 10

如果您将使用 Windows 10 专业版或企业版和 Hyper-V,那么您所要做的就是启用嵌套虚拟化。在您的主机上,只需运行(与您的客人关闭):

> Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Run Code Online (Sandbox Code Playgroud)

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


nul*_*omo 6

根据 Docker 的条款,我认为这是不允许的。第 4.1(b)(vii) 条规定您不得“在虚拟机上使用服务”。需要澄清的是,“‘服务’是指 Docker 提供的应用程序、软件(包括任何开源软件)、产品和服务,包括任何测试版或试用版。”

如果我没看错的话,这意味着在任何虚拟机上运行 Docker 都是非法的。

  • 好像 docker 更新了这一段。它需要 Docker 营业执照,但一般情况下并不禁止。 (2认同)