如何在 Virtualbox mac OS Sierra 中运行 Docker?

如何在 Virtualbox mac OS Sierra 中运行 Docker?

我有一个 GitHub 项目使用Docker创建虚拟化。

我的队友都有 Mac 电脑,但我有一台 Windows 电脑,这迫使我使用 VM。

当我尝试在虚拟机上运行 Docker 时,系统提示我的处理器不兼容,尽管我已打开虚拟化功能,并将 Mac OS 的半虚拟化设置设为“最小”。有什么方法可以修复此类问题吗?

截屏

答案1

'''

由于操作系统中的安全层和 kext,人们无法使用 virtualbox 驱动程序(不是 hyperkit 驱动程序)创建任何类型的虚拟化,因此 minikube 和/或 kubernetes 部署很可能会失败(如果你继续更新你的 Unix: ) ),但安全就是安全!(对于所有仇恨者:RHEL/Centos 从 6 升级到 7 时表现更糟)。

为什么甚至(埃文?(大笑))要费心(蹩脚的笑话呵呵。)

VirtualBox 驱动程序速度更快。速度更快,强烈建议使用该驱动程序,而不是 hyperkit。(并发先生!)

但是等一下 - 为什么我不能直接安装?哦,因为内核不一定允许来自谁知道哪里的各种系统调用(微笑)

也就是说,当您将“virtualbox”字符串放入环境文件时,它不一定能立即工作,因此第一个额外步骤是确保您已停止删除所有 minikubes 等等。如果您在失败的 virtualbox 中运行 docker-machine - 请将其删除。

还适用于:rm -rf ~/.minikube

  1. 现在是时候检查一些有用的东西了,耶!输入“ kextstat | grep -i box ”命令后,您可能会注意到一些已加载的插件

    • 如果你这样做了,那么我们需要先卸载这些扩展!如果你不这样做 - 转到步骤 2(无论如何都要转到步骤 2!哈哈!)

例子:

MacBook-Pro:/Library/Application Support/VirtualBox:$ kextstat | grep -i box

  1. 导航到“/Library/Application Support/VirtualBox”并列出文件夹。

你应该看到类似的东西:LaunchDaemons VBoxDrv.kext VBoxNetAdp.kext VBoxNetFlt.kext VBoxUSB.kext

类型(在该文件夹中):

for i in ` ls | grep -i vbox ` ; do sudo kextunload $i -r "$(pwd)" ; done

  1. 我们需要从任何地方允许 VirtualBox 本身的重新安装过程。

话虽如此,还是选择:

sudo spctl --master-disable 并且它应该禁用守门员守卫并使允许从任何地方选择的选项成为可选的{} :) -> 防火墙安全和隐私设置(os x)

解锁,提供你的 root 密码并选择从任何地方允许(在安装 virtualbox 时需要它)

  1. 接下来,卸载并安装实际的虚拟机 - 尽可能新(>= 5. )。如果安装提示您失败 - 不用担心。我们会入侵您。首先转到第 3 点并允许 Oracle corp :D(我不得不再次单击那里,尽管它已从任何地方允许(顺便说一句,还记得插件和 kext 吗?)

  2. 确保您位于所需的文件夹中(如之前的示例所示)并通过映射到正确文件夹的内容来加载这些内容。

for i in ` ls | grep -i vbox ` ; do sudo kextload $i -r "$(pwd)" ; done

  1. 现在,您必须再次进入隐私设置和防火墙,您会看到 Oracle America 要求您注意!单击允许或任何按钮。

完成后,您就可以开始了。

  1. 测试一下:

docker-machine create -d virtualbox virtualbox docker-machine start virtualbox docker-machine ssh virtualbox. 您应该看到: 太棒了!

这与使用 boot2docker 映像的 virtualbox 本身启动的结果完全相同!

多么酷啊?

  1. 哦,忘记了最重要的部分:

minikube start --vm-driver=virtualbox

享受 :) '''

相关内容