docker-机器无法在 macOS 上创建机器,VBoxManage 返回 E_ACCESSDENIED 错误

docker-machine unable to create a machine on macOS, VBoxManage returning E_ACCESSDENIED error

我使用 HomeBrew 安装了 dockerdocker-machinevirtualbox

Docker version 20.10.11, build dea9396e18
docker-machine version 0.16.2, build bd45ab1
VBoxManage version 6.1.30r148432

当我尝试创建一台新机器时

docker-machine create -d virtualbox default

我收到以下错误:

Running pre-create checks...
Creating machine...
(default) Copying /Users/foobar/.docker/machine/cache/boot2docker.iso to /Users/foobar/.docker/machine/machines/default/boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
(default) Found a new host-only adapter: "vboxnet0"
Error creating machine: Error in driver during machine creation: Error setting up host only network on machine start: /usr/local/bin/VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.99.1 --netmask 255.255.255.0 failed:
VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)
VBoxManage: error: Context: "EnableStaticIPConfig(Bstr(pszIp).raw(), Bstr(pszNetmask).raw())" at line 242 of file VBoxManageHostonly.cpp

我尝试了很多东西

无济于事。显然,该问题是由较新版本的 VirtualBox 中 Host-Only 网络的 IP 限制引起的。 Some posts 建议手动编辑 VirtualBox 的 networks.conf 文件。但是我在我的机器上找不到它,也不知道我应该在那里改变什么!

P.S.1. 问了一个后续问题 here on Reddit.

感谢 Reddit 上的 this comment,我得以解决问题:

  1. 找到所有docker-machine ls
  2. 的机器
  3. 使用 docker-machine rm -y <machineName>
  4. 删除不需要的
  5. 找到所有具有 VBoxManage list hostonlyifs
  6. 的“仅主机以太网适配器”
  7. 删除带有VBoxManage hostonlyif remove <networkName>
  8. 的孤儿
  9. etc 目录中创建一个 vbox 文件夹 sudo mkdir
  10. vbox 文件夹中创建文件 networks.conf,例如 sudo touch
  11. 将下面的行放在那里
* 0.0.0.0/0 ::/0
  1. 使用 docker-machine create -d virtualbox <machineName>
  2. 创建新机器
  3. 运行命令eval $(docker-machine env <machineName>)配置你的shell

P.S.1. 上述解决方案的一个主要缺点是每次启动 docker 机器时都使用 docker-machine start <machineName> 它在 Waiting for an IP...

上花费大量时间